抓包的效果:
(一)准备工具
wireshark 软件
抓包器:理论上能接收蓝牙信号的都可以成为抓包器,所以可以网上买个现成的抓包器,也可以用自己参考官方开发板自己制作一个核心板。
NRF52832使用的开发板默认的串口,P006,P008
nrf52832CTS要拉低,才能工作
如果使用nrf52840核心板做爪包,使用USB接口连接电脑,刷入开发板配套的抓包固件而不是dongle的固件,dongle的固件弹不出com接口。
(二)软件安装安装 python 环境python 的版本要求是在 3.6 及以上,并且不要忘记勾选 pip 安装选项!
安装 WireShark安装 WireShark
下载官方抓包工具,wireshark是一个壳,实际上完成抓包数据的还是官方提供的工具软件实现的。
a)在Sniffer_Software/extcap/ 文件夹中打开命令窗口。 打开cmd命令窗口,切换到安装盘,比如D盘,输入D:
然后CD D:\Program Files\Wireshark\extcap
b)输入 pip3 install -r requirements.txt,安装。
安装可能提示升级pip,根据提示运行命令
c) 关闭命令窗口
将 nrf_sniffer_for_bluetooth_le_4.1.0/extcap 目录里的内容原封不动的拷贝到 Wireshark 安装目录里的 extcap 下。
将 Profile_nRF_Sniffer_Bluetooth_LE 拷贝到如下图所示目录:
确保nRF Sniffer文件可以正确运行:
进入Wireshark/extcap目录,输入
$ nrf_sniffer_ble.bat --extcap-interfaces
当出现如下界面的时候,说明文件可以正常运行
(二)蓝牙抓包分析启动 Wireshark ,勾选接口工具栏里的 nrf sniffer for Bluetooth LE 选项。
双击如下图所示 nrf sniffer for Bluetooth LE COMxx 栏。
如下图可以选择捕获 37,38,39 广播信道 上的数据包。
选择要抓包的设备对象
如下图所示,可将蓝牙协议数据包的成员变量单独变成一个列表,便于显示:
以下是手机 BLE 调试助手 app 连接蓝牙设备并读写设备的步骤:
通过 WireShark 查找功能找到连接蓝牙的起始步骤 CONNECT_IND:
为了便于查找我们可以先如下图所示过滤空包:

手机 app 获取蓝牙设备名时产生的数据包分析:

Opcode = 0x08; Opcode = 0x09; 对应的蓝牙规范手册内容如下:

手机 app 发送字符串 light on 产生的数据包分析:

Opcode = 0x12; Opcode = 0x13; 对应的蓝牙规范手册内容如下:
 |