WCH BLE 分析仪 LTK 调试与离线数据解析使用说明
抓到了 BLE 数据,却没有按预期解析出来?如果已经拿到目标连接对应的 LTK,可以按照本文的方法,先记录硬件数据,再开启调试模式,加载日志重新解析。
本文使用 BleAnalyzer64.exe 演示完整流程。操作的关键是:抓包前开启硬件数据记录;修改配置后重启软件;输入 LTK 时使用小端字节序,并按 Enter 保存。 不同软件版本的界面可能有所差异,以下以配图所示版本为准。
一、 准备软件与目标 LTK
开始前,请准备好 BLE 分析仪、配套的软件包,以及目标连接对应的 LTK。本文演示如何配置已有 LTK,不涉及 LTK 的获取过程。
软件包下载:下载 BleAnalyzer 调试软件
文件格式:ZIP;大小:约 44.4 MB。下载并完整解压后,运行文件夹中的 BleAnalyzer64.exe。
硬件购买链接:BLE-AnalyzerPro WCH升级版BLE-PRO蓝牙分析仪-淘宝网
二、 开启硬件数据记录并完成抓包
1. 打开 BleAnalyzer64.exe,进入“设置”。
2. 勾选“记录硬件数据”。这一步要在抓包前完成,为后续加载日志重新解析做准备。
3. 点击“开始”,抓取需要分析的通信过程。
4. 抓取结束后点击“停止”。如需保留当前抓包结果,可另行保存。
5. 关闭分析仪软件,再进行下一步配置。
图1 在开始抓包前勾选“记录硬件数据”。
进入分析仪软件所在目录,检查本次记录生成的日志。示例中的文件名如下,它们没有 .log 后缀:
buginfo
buginfopart1
buginfopart2
图2 后续需要加载的是这些硬件数据日志。
这里有两个保存动作:“记录硬件数据”用于生成后续调试所需的日志;“保存当前抓包结果”则是另外一个可选操作。按本文流程操作时,需要先开启硬件数据记录。
三、 修改配置并开启调试模式
确认分析仪软件已经关闭,然后在软件所在目录找到 cfg.ini,用文本编辑器打开。
找到 DbgInfoMode,将它的值改成 1,保存文件。截图中该配置项位于 [config] 节下:
[config]
DbgInfoMode=1
只修改已有配置项的值,保留文件中的其他内容。 上面的代码仅展示相关配置,不是完整的 cfg.ini 文件。
图3 截图展示修改前的值 0,实际需要保存为 1。
重新打开 BleAnalyzer64.exe。开启成功后,工具栏中会出现调试相关按钮,包括后面要用到的绿色箭头。
图4 红框标出了新增的调试按钮区域。
四、 设置 LTK 并确认字节顺序
点击“抓包设置”,找到 LTK 输入框,填入目标连接对应的 LTK,随后按 Enter 保存设置。
图5 修改 LTK 后需要按 Enter 保存。
小端字节序应该怎么理解
本文所用软件要求 LTK 按“小端排序,低字节在前”的方式输入。理解这句话时,最容易出错的是把“按字节倒序”误写成“按字符倒序”。
一个字节对应两位十六进制字符。例如 12 是一个字节。调整字节顺序时,这两位字符要作为一个整体移动。
下面使用一组演示数据说明。假设拿到的 LTK 已明确是“高字节在前”的显示顺序:
高字节在前的演示数据
00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF
转换为低字节在前
FF EE DD CC BB AA 99 88 77 66 55 44 33 22 11 00
连续十六进制形式
FFEEDDCCBBAA99887766554433221100
只有确认原始数据是高字节在前时,才需要按字节倒序。 如果拿到的数据本身已经是低字节在前,就直接使用,不要再次反转。演示数据仅用于说明顺序,实际调试时请填写目标连接的 LTK。
五、 加载日志并重新解析
1. 点击调试工具栏中的绿色箭头。
2. 在文件选择窗口中,进入记录日志的软件目录。
3. 选择包含目标通信数据的日志文件,加载并查看解析结果。
示例目录中有 buginfo、buginfopart1 和 buginfopart2。如果不确定目标数据在哪个文件中,可以依次加载检查。
图6 本次示例选择的是 buginfopart2。实际应根据自己的抓包记录选择文件。
本次示例的目标数据位于 buginfopart2 中。加载后,软件会按照已设置的 LTK 重新解析记录的数据。
图7 加载目标日志后的数据列表。
检查结果时,先确认加载的是目标连接的数据,再查看原先无法解析的目标报文是否得到预期解析。仅看到列表中出现数据,还不能据此认定所有加密报文都已成功解密。
六 、遇到问题时先检查这些地方
软件中没有出现调试按钮
确认修改的是当前运行软件所在目录的 cfg.ini,并且已经保存 DbgInfoMode=1。修改后需要重新打开软件。
软件目录里没有找到日志
确认在开始抓包前勾选了“记录硬件数据”,并检查当前运行的软件目录。仅保存当前抓包结果,不能代替本文要求的硬件数据记录步骤。
修改 LTK 后解析结果没有变化
先确认输入后按了 Enter 保存,再检查 LTK 是否属于目标连接、字节顺序是否符合要求,以及是否已重新加载正确的日志。
加载文件后找不到目标数据
不要固定只选择 buginfopart2。它只是本文示例中包含目标数据的文件;你的数据可能位于其他日志中,可以依次加载检查。
完成上述操作后,就可以在保留的硬件数据日志上调整 LTK 并重新解析,方便对照不同设置下的结果。

浙公网安备 33010602011771号