nRF52832 DK 是Nordic(北欧半导体)的52832的官方开发板,
这个板子除了它的本职工作--跑nRF52832的例程、调试代码之外,其实它还有一个特殊功能:作为一个蓝牙嗅探器(ble sniffer)抓取蓝牙数据包,以供蓝牙协议分析。关于蓝牙抓包的权威指南是Nordic官网的这个地址:https://www.nordicsemi.com/Software-and-tools/Development-Tools/nRF-Sniffer-for-Bluetooth-LE
Nordic的多个开发板(DK)和dongle都可以用来抓包的:
使用 nRF52832 DK抓包需要的工作步骤如下:
1、获取相关软件包:nRF52832 DK抓包工具软件包(固件、有关插件、文档说明)、Wireshark,安装必要的Python软件包。
2、对 nRF52832 DK烧写固件。
3、安装 Wireshark。
4、安装 pyserial 3.4 以上版本。
5、配置 Wireshark插件、以支持由 nRF52832 DK 串口数据进行蓝牙协议分析。
下面详述每一个步骤:
1、获取相关软件包
【nRF52832 DK抓包工具软件包】下载地址:https://download.csdn.net/download/code_1234/16014920,文件名称:nrf_sniffer_for_bluetooth_le_3.1.0_7cc811f.rar(或 nrf_sniffer_for_bluetooth_le_3.1.0_7cc811f .zip)。
【Wireshark-win64-3.2.11.exe】下载地址:https://www.wireshark.org/download.html
(这是64-bit版本,根据自己PC具体情况选择下载;对Wireshark版本没有特殊要求、比较新的都可以)
2、烧写 nRF52832 DK固件
解压缩 nrf_sniffer_for_bluetooth_le_3.1.0_7cc811f.rar 到任意目录,其中 hex 子目录下有一个文件:sniffer_nrf52dk_nrf52832_7cc811f.hex,这是要烧写的固件文件。
首先连接 nRF52832开发板到PC,然后打开nRF52832烧写工具:
将上述hex固件文件拖到Programmer中:
烧写固件:
烧写成功后,板子上LED1是快速闪烁的状态:
退出Programmer软件(释放占用的串口,因为后面Wireshark的插件也要用这个串口):
安装Wireshark:
需要安装Npcap插件:
USBPcap是USB数据抓包插件,可装可不装,这里选择不安装:
开始安装过程:
自动跳出安装Npcap的界面:
Npcap的选项,可按如下勾选:
Wireshark继续安装:
安装完毕:
下面配置 Wireshark插件,先查找 Wireshark插件的目录位置。启动Wireshark:
在弹出的窗口中,点击 文件夹 选项卡,再双击 Global Extcap path 后面的路径:
将nrf_sniffer_for_bluetooth_le_3.1.0_7cc811f.rar解压缩出来的extcap目录下的所有文件和目录:
copy到图二十六中打开的Wireshark插件目录中:
4、安装 pyserial
首先需要确认PC中已经安装了Python,然后在cmd终端窗口或PowerShell窗口中输入命令:
pip install pyserial>=3.4
即可安装pyserial。Wireshark调用蓝牙sniffer插件,sniffer插件又调用了Python的serial包,所以需要pyserial包的支持。
至此,所有准备工作都完成了,再次启动Wireshark,可以看到出现了nRF Sniffer插件(COM口因个人PC会不同):
在Wireshark的 视图(View)菜单中,可以勾选 接口工具栏-->nRF Sniffer for Bluetooth LE 来控制是否显示Sniffer出现在Wireshark界面上(不影响蓝牙抓包功能的正常使用):
蓝牙抓包实例:
工具包中还有一个Wireshark的”配置“文件目录:
copy到Wireshark对应目录中:
貌似抓包数据的颜色有些变化(不影响抓包效果):
(完)