嗅探/记录您自己的Android蓝牙流量

pek*_*u33 68 android reverse-engineering bluetooth

我最近买了通过蓝牙与Android手机/平板电脑连接的中文设备.由于没有适用于windows/linux的应用程序,我想创建一个供个人使用的应用程序.

通常手机连接到设备并交换一些数据.我将PC连接到设备并查看串行调试器并进行管理以发现协议(仅限一种方式).电话仅向设备发送一个命令.但是这次我无法找出它包含的内容.

有没有软件可以让我查看通过蓝牙发送的数据?我试过反编译应用程序,但它看起来真的很不友好.

谢谢.

Ste*_*zyk 79

Android 4.4(Kit Kat)确实为蓝牙提供了新的嗅探功能.你应该试一试.

但是,如果你没有嗅探装置,那么你不一定是运气不好.在许多情况下,我们可以通过Android 4.4中引入的新功能获得积极的结果:捕获所有蓝牙HCI数据包并将其保存到文件的能力.

当Analyst通过运行正在测试的应用程序完成填充捕获文件时,他可以将Android生成的文件拉入设备的外部存储并进行分析(例如,使用 Wireshark).

激活此设置后,Android会将数据包捕获保存到/sdcard/btsnoop_hci.log,由分析师提取并进行检查.

如果/sdcard/您的特定设备上的路径不正确,请输入以下内容:

adb shell echo \$EXTERNAL_STORAGE
Run Code Online (Sandbox Code Playgroud)

然后我们可以打开一个shell并拉出文件:$ adb pull /sdcard/btsnoop_hci.log并使用Wireshark检查它,就像通过嗅探WiFi流量收集的PCAP一样,所以它非常简单且得到很好的支持:

使用Android HCI Snoop进行wireshark捕获的屏幕截图

[资源]

您可以通过转到Settings-> Developer Options,然后选中"Bluetooth HCI Snoop Log"旁边的框来启用此功能.

  • @JackShultz如果你没有看到创建的btsnoop_hci.log,请在文本编辑器中打开/etc/bluetooth/bt_stack.conf,它包含设备上文件的路径.对我来说,它存储在/sdcard/Android/data/btsnoop_hci.log中. (8认同)
  • 我无法让这些方法中的任何一个与 Google Pixel 一起使用。主要问题似乎是日志记录永远不会真正打开:/sf/answers/2124674121/ (3认同)
  • @StephanBranczyk这种拉动**hci.log**的方式可能在较新的设备(特别是Nexus和Pixel)上已经过时了.现在必须从开发人员设置启用错误报告快捷方式以手动获取此日志. (2认同)

小智 7

此外,这可能有助于查找保存btsnoop_hci.log的实际位置:

adb shell "cat /etc/bluetooth/bt_stack.conf | grep FileName"
Run Code Online (Sandbox Code Playgroud)