0、序

  在实际开发避免不了数据包的解析。由于之前有用过TI CC2540和其官方抓包工具smartRF packet sniffer来做BLE广播包的分析,所以在开始的时候也是使用这种组合方案来打算抓取Mesh的广播包provisioning data等数据,结果抓取失败,没有sniff出相关的广播包,所以才有了接下来的这种方案。

0.1、环境Setup

  需要准备的东西和安装的软件已经列举如下表所示,

Type

名称

描述

USB Dongle

nrf25382/nrf52840 USB Dongle

抓包硬件工具

SW

Wireshark

抓包工具软件

SW

Python3.x

Wireshark 脚本运行环境

SW

nrf_sniffer_for_ble

针对NRF Dongle NRF官方提供的packet

1)nrf52840 USB Dongle

wireshark查看广播包 wireshark抓广播包_封包


2)Wireshark :软件获取传送门-https://www.wireshark.org/

wireshark查看广播包 wireshark抓广播包_BLE Mesh_02

1、调试环境准备

1.1、Wireshark软件安装

  Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark拥有强大的过滤器引擎,用户可以使用过滤器筛选出有用的数据包,排除无关信息的干扰,https://www.wireshark.org/

wireshark查看广播包 wireshark抓广播包_BLE Mesh_03

1.2、Python环境安装

  Python的安装我这里就不在赘述了,已经老生常谈了,需要注意的是需要安装Python3的版本,切记。

wireshark查看广播包 wireshark抓广播包_封包_04

1.3、nrf_sniffer_for_ble安装

  nrf_sniffer_for_ble是啥?引用NRF官方的介绍就是“nRF Sniffer for Bluetooth LE is a useful tool for debugging and learning about Bluetooth Low Energy applications.The nRF Sniffer for Bluetooth LE allows near real-time display of Bluetooth LE packets.This helps the developer to identify and fix issues by allowing a view of what is happening on-air.”

  简言之就是适用于Bluetooth LE的nRF Sniffer是调试和了解Bluetooth Low Energy应用程序的有用工具。作为Wireshark的插件来使用,辅助Wireshark分析BLE的抓包数据。

软件包传送门如下:https://www.nordicsemi.com/Software-and-tools/Development-Tools/nRF-Sniffer-for-Bluetooth-LE 1)nrf_sniffer_for_ble解压后的目录;

wireshark查看广播包 wireshark抓广播包_wireshark查看广播包_05


2)切换目录到<nrf_sniffer_for_bluetooth_le_3.1.0_7cc811f\extcap>进行相关依赖安装,主要是安装pyserial;

pip3 install -r requirements.txt

wireshark查看广播包 wireshark抓广播包_Wireshark_06


3)打开Wireshark,帮助–>关于Wireshark–>文件夹,将下载好的nrf_sniffer_for_bluetooth_le_3.0.0_129d2b3/extcap/下的所有文件拷贝到Global Extcap path所示的文件夹内。

wireshark查看广播包 wireshark抓广播包_wireshark查看广播包_07


  并检查copy进去的文件是否能够正常的运行,尝试运行nrf_sniffer_ble.bat脚本,因为这也关系到接下来使用的Wireshark是否能够正常的调用相关文件,正常运行如下图所示。

.\nrf_sniffer_ble.bat --extcap-interfaces

wireshark查看广播包 wireshark抓广播包_Wireshark_08


  OK,能够正常调用,接下来是在Wireshark导入BLE相关profile,这样Wireshark才能够解析BLE的数据包。

4)同样的也是打开配置文件夹将相关文件导入到个人配置所指示的文件夹中,将<nrf_sniffer_for_bluetooth_le_3.0.0_129d2b3>中的<Profile_nRF_Sniffer_Bluetooth_LE>文件夹拷贝到下述的个人配置路径即可。

wireshark查看广播包 wireshark抓广播包_封包_09


5)刷新接口使能nrf_sniffer tool;

wireshark查看广播包 wireshark抓广播包_Wireshark_10


6)启用nRF_Sniffer_Bluetooth_LE profile;

wireshark查看广播包 wireshark抓广播包_wireshark查看广播包_11

2、动手抓包

  接下来接入Dongle进行进行抓包了。刷新接口列表,选择nRF Dongle的 COM口。

wireshark查看广播包 wireshark抓广播包_wireshark查看广播包_12


  BLE Mesh广播包已经无处遁形了。

wireshark查看广播包 wireshark抓广播包_BLE Mesh_13


  BLE Mesh的专栏也开了一段时间了,才更新了一点文章,Mesh协议的解读草稿在笔记里已经写得差不多了,看看啥时候pop出来,接下来会写一些基于Dongle抓到的广播包解析Mesh配网过程以及Mesh协议的解读分析之类的。

wireshark查看广播包 wireshark抓广播包_Wireshark_14



つつく