手中有一台LINAK升降桌,支持手机蓝牙app控制。突发奇想,可否在pc端控制,在不同应用打开的场景下,自动调节预设高度。实现这一功能,需要解出设备的蓝牙报文,得到cmd植,常规的抓包手段需用到SNIFFER硬件,奈何手中并无此类设备,遂有下文。
抓BT报文–BTETLParse.exe
1.在微软蓝牙测试平台,找到关于蓝牙测试工具的说明。该工具可将总线提取的ETL文件,提取BT部分并转为wirshark(最终还是离不开老演员)可识别的cfa文件。
提取ETL文件START:logman create trace “bth_hci” -ow -o C:\bth_hci.etl -p {8a1f9517-3a8c-4a9e-a018-4f17a200f277} 0xffffffffffffffff 0xff -nb 16 16 -bs 1024 -mode Circular -f bincirc -max 4096 -ets
此时使用LINAK的PC应用连接并操作桌面升降。
提取ETL文件STOP:logman stop “bth_hci” -ets
此时在C:/下可以看到生成了bth_hci.etl文件
重要:需要将生成的文件移动到C:/temp/路径下,并命名为btetw.etl。此路径和文件名为BTETLParse.exe的识别路径,否则运行程序失败
2. 使用BTETLParse.exe,转ETL为CFA。
下载BTETLParse.exe(https://download.microsoft.com/download/e/e/e/eeed3cd5-bdbd-47db-9b8e-ca9d2df2cd29/BluetoothTestPlatformPack-1.8.0.msi)
安装后,程序在C:\BTP\v1.8.0\x64路径可见,该应用无界面,建议命令行执行,可看到执行是否成功。
BTETLParse.exe执行成功后,在C:/temp/路径下生成的刚才ETL同名的cfa文件,至此,抓包完成。
- Wirshark
文件->打开刚生成的cfa文件
因为是写入控制,我主要关注ATT层的WRITE操作。
使用手机APP bluetools ,尝试写找到的uuid 值,成功得到对应操作的cmd 和 对应的UUID。
至此,已成功抓包并破解报文CMD值。
bingo