此文只介绍环境的搭建,具体怎么使用wireshark和sniffer抓取数据,请参阅《Wireshark配合nRF Sniffer使用技巧.docx》一文。

 

监听架构:

wireshark分析蓝牙数据包 wireshark抓蓝牙包_测试工具

 

 

  1. 1.         需要硬件

 

要想实现抓包,至少要有一个nordic的开发板,将它刷入特定的sniffer固件,制作成一个sniffer才行,我们可以使用如下的板子:

nRF51 Development Kit (PCA10028) v1.0 or later and a micro USB cable(nrf51422)
nRF51 Dongle (PCA10031)(nrf51422)
nRF51822 Evaluation Kit (PCA10001) and a mini USB cable
nRF51422 Evaluation Kit (PCA10003) v3.0.0 or later and a mini USB cable
nRF51822 Development Kit dongle (PCA10000)
nRF52 Development Kit (PCA10040) and a micro USB cable(nrf52832)
nRF52840 Development Kit (PCA10056) and a micro USB cable

 

你会发现nrf51822、nrf51422、nrf52832和nrf52840等蓝牙芯片均可以制作成sniffer嗅探器,但是他们均需要刷入不同的固件程序,并且nrf51822和nrf51422硬件最多支持到蓝牙4.2的版本,而nrf52832和nrf52840可以支持到蓝牙5.0版本。

wireshark分析蓝牙数据包 wireshark抓蓝牙包_网络_02

 

  1. 2. Windows版本需要软件

(1) nrf_sniffer_for_bluetooth_le_4.x or later ,包含了jlink驱动等,下载网址:nRF Sniffer for Bluetooth LE - Downloads - nordicsemi.com

下载图示:

 

wireshark分析蓝牙数据包 wireshark抓蓝牙包_wireshark_03

 

(2)Wireshark-win64-3.6.0 or later.下载: Wireshark · Go Deep.  下载图示:

wireshark分析蓝牙数据包 wireshark抓蓝牙包_测试工具_04

 

 

(3)python v3.10.x Python Release Python 3.10.0 | Python.org

注意:这个不能用最新的python版本,否则可能无法使用。下载图示:

 

wireshark分析蓝牙数据包 wireshark抓蓝牙包_测试工具_05

 

(4) pyserial v3.4 or later

pyserial一般不用下载,安装python后用命令即可安装此插件,后续会介绍。

命令行输入: pip3 install pyserial

(5)之后安装好Wireshark-win64-3.6.0

 

 

文件介绍:

nrf_sniffer_for_bluetooth_le_4.1.0.zip解压后如下图所示:

wireshark分析蓝牙数据包 wireshark抓蓝牙包_wireshark_06

 

 

  1. 3.软件安装与配置

注意:安装步骤不要变,否则可能安装失败。

(1)安装wireshark:

双击Wireshark-win64-3.6.0.exe进行安装,一路next,选中下图(是3.0.1的)桌面创建快捷方式:

 

wireshark分析蓝牙数据包 wireshark抓蓝牙包_网络_07

 

如下图,选中USBPcap并进行安装:

 

wireshark分析蓝牙数据包 wireshark抓蓝牙包_网络_08

 

剩下就是一路允许和接受,直到安装完毕,然后重启计算机

(2)配置Wireshark环境:

打开Wireshark->Help->AboutWireshark->Folders->双击打开个人Extcap路径,如下所示:

wireshark分析蓝牙数据包 wireshark抓蓝牙包_wireshark_09

 

解压nrf_sniffer_for_bluetooth_le_4.1.0.zip文件,将里面的extcap文件夹里的四个文件复制到刚刚打开的这个Wireshark的extcap路径下,如图所示为复制完毕的效果图:

wireshark分析蓝牙数据包 wireshark抓蓝牙包_测试工具_10

 

然后双击wireshark里的个人配置的网址,如下图所示:

 

wireshark分析蓝牙数据包 wireshark抓蓝牙包_wireshark分析蓝牙数据包_11

 

在弹出的文件夹下打开profiles文件夹,然后将解压的nrf_sniffer_for_bluetooth_le_4.1.0.zip文件中的Profile_nRF_Sniffer_Bluetooth_LE文件夹拷贝到profiles文件夹中,如下图为拷贝完毕的效果图:

wireshark分析蓝牙数据包 wireshark抓蓝牙包_f5_12

验证插件安装是否成功(nrf_sniffer_ble是wireshark的插件)

如下目录打开命令行输入 nrf_sniffer_ble.bat --extcap-interfaces

看到如下返回提示 表示安装插件成功。

wireshark分析蓝牙数据包 wireshark抓蓝牙包_f5_13

(3)安装python3.10.0:参考下面2.7.16的方式

双击python-2.7.16.amd64.msi进行安装,一路next,直到如下界面:

wireshark分析蓝牙数据包 wireshark抓蓝牙包_wireshark_14

此处需要选择该项,即添加环境变量,然后一路next即可,直到安装完毕。

 

(4)安装pyserial v3.4:

命令行输入: pip3 install pyserial  (如果遇到更新提示可以线更新一次)

wireshark分析蓝牙数据包 wireshark抓蓝牙包_测试工具_15

(5) 安装JLink_Windows_V752d_x86_64.exe

                  

  1. 4.将开发板烧录制作成sniffer蓝牙嗅探器:

不同的开发板需要烧录不同的hex文件才能成为sniffer,hex文件放在nrf_sniffer_for_bluetooth_le_4.1.0.zip解压缩后的hex文件夹中,如下图所示:

 

wireshark分析蓝牙数据包 wireshark抓蓝牙包_wireshark_16

 

我们以图中pca10056为例进行说明,即52840的板子,该板子可支持蓝牙5.0的抓包。

我们要将sniffer_pca10056_1c2a221.hex下载到pca10056的板子上。这里可以采用多种方式,例如使用jlink命令下载,也可以用nordic的nrfjprog动态库命令下载,也可以通过nrfgo studio界面化工具下载,最简单J-Flash Lite下载,但无论采用哪种方式,都要先擦除芯片,再烧录程序。

 

首先,我们以J-Flash Lite.exe为例进行说明:

  1. 用USB数据线将PCA10056开发板和电脑连接;
  2. 打开J-Flash Lite V7.52b;

wireshark分析蓝牙数据包 wireshark抓蓝牙包_网络_17

  1. 5.验证sniffer是否安装成功:

上述准备完毕,再打开wireshark,则会出现nRF Sniffer字样的东西,如下图所示,则说明安装成功了,后面就可以使用此环境进行抓包了。

wireshark分析蓝牙数据包 wireshark抓蓝牙包_wireshark_18

wireshark分析蓝牙数据包 wireshark抓蓝牙包_wireshark分析蓝牙数据包_19

wireshark分析蓝牙数据包 wireshark抓蓝牙包_测试工具_20

完成