低级蓝牙数据包分析

Mic*_*l B 3 sockets networking reverse-engineering bluetooth ios

我有一个使用蓝牙LE和我的iPhone 6+的健身追踪器.不幸的是,该应用程序没有透露来自跟踪器的原始数据和零输出方式,而这些数据对我来说非常有趣.我从Adafruit购买了蓝牙LE嗅探器,并使用Wireshark捕获数据包.虽然我可以打开它并分析标题没有问题,但实际数据有点超出我的范围.

我查看了网络中查看数据包/帧的帖子,但是开始分析数据的最佳方法是什么?将它倾倒到一个巨大的十六进制编辑器中并没有帮助(显然).

谷歌搜索各种信息条款令人困惑,并在SE网络上显示零结果.

这是一个Wireshark数据包窗口的示例,我假设是在健身跟踪器跟踪运动时写入的数据:

在此输入图像描述

从数据包中选择更多,随机选择:

在此输入图像描述

您在寻找更好的资源以及从何处开始分析这些数据包及其数据方面的帮助表示赞赏!

aer*_*tal 7

开始分析数据的最佳方法是找出实际数据的起始位置和结束位置.

免责声明:我对蓝牙没有经验,但让我们试一试.

您有两种类型的捕获数据包:( Empty PDU某种形式的信令?)和ATT.在空PDU中搜索数据似乎没有效果,所以让我们来看看ATT.

维基百科说:

低能量属性协议(ATT)

它允许客户端以非复杂,低功耗友好的方式读取和/或写入服务器公开的某些属性.

这听起来很像数据.

快速谷歌搜索"L2CAP数据包格式"显示多种格式,以4字节标头开头:2字节消息长度+ 2字节CID(小端).

使用the giant hex editor我们在06 1b数据头之后立即找到相应的4个字节.它们17 00 04 00转换为长度23和CID 0x0004.

查找CID 0x0004显示它确实是ATT的保留值.

搜索ATT数据包格式的时间:似乎从1字节命令代码开始.这1d意味着HANDLE_VALUE_INDICATION.句柄是一个短(2个字节),0x001b就像在第一个图像中一样.

因此,句柄后的20个字节是值.它代表什么是任何人的猜测.

05 e5 00 83 ff 4a 00 77 77 77 fc 6d fc 37 fc 18 fe 1f 03 43

挖掘多一些发现,Wireshark的应该是能够分析ATT直接(尝试解码作为?),并且有在教程learn.adafruit.comBLE嗅探器,甚至是文章谁一个人试图反向工程色通过分析ATT数据包来改变灯泡.