文章目录
链接:https://pan.baidu.com/s/1Ah5ZZZIg_EVqiB51vkDymA?pwd=qk70
提取码:qk70
1 准本工作
1.1 购买 nrf sniffer 抓包工具
1.2 下载文件
-
下载 CP2101 驱动
-
nRF Sniffer for Bluetooth LE,包含了jlink驱动等,
下载网址:https://www.nordicsemi.com/Software-and-Tools/Development-Tools/nRF-Sniffer/Download#infotabs
3. Wireshark v2.4.6 or later.
下载地址: https://www.wireshark.org/#download
4. 下载 python 3.7.8
下载链接:https://www.python.org/downloads/release/python-378/
2 安装
本文以 windows 11 64 位系统做演示说明。
2.1 CP2101 驱动
解压 CP210x_Universal_Windows_Driver.zip,双击如下图安装文件进行安装
2.2 wireshark
双击Wireshark-win64-3.0.1.exe进行安装,一路next,选中下图桌面创建快捷方式:
如下图,选中USBPcap并进行安装:
剩下就是一路允许和接受,直到安装完毕**。**
打开 wireshark->帮助->关于wireshark->文件夹->双击打开 extcap 路径,如下所示:
解压之前下载的 nrf_sniffer_for_bluetooth_le_4.1.1.zip 文件,复制其 extcap 下的所有文件到上图打开的路径中,如下图:
2.3 python
双击之前下载的 python-3.7.8-amd64.exe 进行安装,一路 next,直到如下界面:
需要选择添加环境变量,然后 install 完毕。
安装完 python,需要进一步安装相关依赖库
按下 Windows + R 调出运行,输入 cmd 后回车,查看 python 是否安装成功,如下图:
执行 python –m pip install –upgrade pip 更新 pip(如果无法下载建议先关闭 vpn)
如果仍旧无法执行更新,则指定国内源更新,命令如下:
python -m pip install --upgrade pip -i https://mirrors.aliyun.com/pypi/simple/
执行 cd C:\Program Files\Wireshark\extcap 进入 extcap 目录下,
并执行 pip install -r requirements.txt 安装需要依赖的库,
如果请求超时,请先关闭 vpn,或者执行以下命令使用国内源进行下载,
pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
出现如下图所示表明安装成功。
3 验证
插上 nrf sniffer 抓包工具,打开 wireshark 软件,出现如下图所示即表明安装成功,wireshark 具体使用方法请另行查阅
4 解密 sigmesh
如果不输入 sigmesh 网络密钥,抓取的通信包就如下图所示ADV_NONCONN_IND,此时可以如下图所示右击ADV_NONCONN_IND 通信包,并依次按照如下图所示选择 Mesh Keys选项
选择之后弹窗如下图所示界面,并依次输入 sigmesh 网络的 Network Key、Application Key、IVindex 参数,并点击确定
如果所有参数正确,将解密 sigmesh 通讯包,之前全部标识ADV_NONCONN_IND的通讯包现在如下图所示,表明解密成功:
5 sigmesh 抓包配置
Wireshark 在实现前文的配置之后,无论选择软件界面右下角的哪个配置选项,都不会出现 如下图所示的sigmesh 通讯包的单播源地址和目的地址以及序列号,可以按照接下来的操作说明进行 sigmesh 配置的导入,然后选择 sigmesh 配置即可
首先查看 wireshark 个人配置文件路径,点击“帮助”->“关于wireshark”->文件夹,如下图所示:
点击“个人配置”路径会打开个人配置目录,然后将 Sigmesh 文件夹拷贝到打开目录下的 profiles 目录中,如下图所示:
先别关闭该目录串口,重启 wireshark 软件,如果界面右下角出现了 Sigmesh 配置项,则选择该配置项即可,如果没有出现则右击配置处,选择导入->From Directory,选择上图Sigmesh目录导入即可,然后选择 Sigmesh 配置,至此配置完成,后续在抓取 sigmesh 节点间的通讯时会自动显示该包的单播源地址、目的地址、序列号。如下图所示:
6 sigmesh 抓包自定义列
右击下图红色区域,选择“列首选项”
按照箭头指示进行自定义操作,想显示什么就选择什么字段
7 sigmesh 抓包过滤 - 仅通信双方的sigmesh包
如下图所示位置,输入如下过滤规则:
((pbadv)||(provisioning)||(btmesh)||(beacon)) &&(btle.advertising_address == a4:c1:38:ea:e8:80 || btle.advertising_address == a4:c1:38:a7:fc:cc)
注意两个mac地址修改为当前要抓包的节点的mac地址