BLE嗅探:来自adb bugreport的btsnoop日志使用python脚本编码/解码问题

2024-05-23 17:22:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我对读取蓝牙设备(BLE)数据不太熟悉,并尝试遵循this Medium tutorial(我的蓝牙设备是Amazfit Bip)

我一直在寻找btsnoop_hci.log文件(来自三星Galaxy S7),所以我以recommended in this Stack Overflow answer here的形式运行adb bugreport anewbugreportfolder
为了重现性,我将bugreport的相关部分上传到Dropbox here

我的问题是:当我尝试按照上面链接的堆栈溢出答案中的建议运行btsnoop.py(can be found here)时,我得到了不可能预期的非常奇怪的输出(例如,它以��^D#}开头,并包含许多奇怪的问号字符)

Python脚本中是否有一些部分需要调整才能正常工作,例如编码(没有一个标准的部分能够提供更好的结果)?我正在使用Python 3.7。或者,可能是关于我的蓝牙设备


Tags: 文件数据logherethisgalaxytutorialmedium
1条回答
网友
1楼 · 发布于 2024-05-23 17:22:31

工具的输出没有问题。这是您对预期内容的期望,这是错误的:该工具的输出是二进制内容,而不是文本文件

以下命令(不是工具名为btsnooz,不是btsnoop)将二进制输出重定向到名为btsnoop_hci.log的新文件:

$ python2 ./btsnooz.py ./bugreport-part.txt > btsnoop_hci.log

$ file btsnoop_hci.log
btsnoop_hci.log: BTSnoop version 1, HCI UART (H4)

Wireshark软件完全能够解释生成的BTSnoop日志文件:

wireshark btsnoop_hci.log

Screenshot of Wireshark interpreting the file btsnoop_hci.log

仅查看具有CID 0x0004的相关数据包的良好筛选器是btl2cap.cid == 0x0004

enter image description here

有关如何继续的更多提示,请参见本教程:Reverse Engineering BLE Devices - Application Protocol Reverse Engineering

相关问题 更多 >