持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第19天,点击查看活动详情
F52实践:抓包环境搭建。
概述
抓包器:nrf52840,刷的固件是抓包功能(某宝卖的抓包器,有2个功能,一般只能选一个,本文购买是抓包模式)。
抓包器设备简述:
- 默认为抓包模式,插入PC后,win10会自动安装驱动,在正确安装软件情况下,打开wireshark,红色LED快闪。
- 在插入PC后,按靠近USB的按键,进入DFU模式(可用NRF工具连接),此时蓝色 LED 慢闪。
准备工作
抓包工具
下载地址:
- wireshark:www.wireshark.org/#download 3.4.0
- nrf_sniffer_for_bluetooth_le:www.nordicsemi.com/Products/De… 4.1.0
- python:www.python.org/downloads/ 3.7.3
说明:本文使用的软件版本不是最新的,但是经过测试验证的。
环境说明
笔者经过较多的尝试,最终在一台win7系统安装win10 64位虚拟机,在虚拟机中安装抓包工具,并最终达到目标。
插入抓包器后,vmware虚拟机识别,需连接到虚拟机中:
win10识别抓包器:
技术小结
安装及配置
安装python
按默认方式安装即可,注意选“Install Now”、添加环境变量。
进入nrf_sniffer_for_bluetooth_le_4.1.0
目录,安装依赖库,命令:pip install -r requirements.txt。下图是已经安装过的
安装wireshark
默认安装即可(安装Npcap,不安装USBPcap)。
配置 wireshark
打开 wireshark,选择帮助->关于->文件夹,双击Global Extcap path
打开 Extcap 目录位置。
进入nrf_sniffer_for_bluetooth_le_4.1.0
目录。将extcap
目录下所有内容拷贝到打开的位置。
双击”个人配置“,进入该目录的profiles目录。
将nrf_sniffer_for_bluetooth_le_4.1.0
目录的Profile_nRF_Sniffer_Bluetooth_LE
目录拷贝到profiles
目录。
编辑->配置文件。
选择”Profile_nRF_Sniffer_Bluetooth_LE“:
点击OK确定。界面右下角显示:
选择捕获->刷新接口。
注:如果识别到抓包器设备,红色 LED 会快闪。
选择BLE的串口即可抓包分析。
参考资源
官方 nRF_Sniffer_BLE_UG_v3.1.pdf 文件。
实践记录
本小节记录所遇问题及解决方法。
wireshark软件卡在“初始化外部捕获插件”
现象:win10系统,按教程安装软件并配置好,插入抓包器,打开wireshark软件,但卡在“初始化外部捕获插件”,经查,是 extcap 目录导致。去掉该目录能初始化成功。正常情况下,在“初始化外部捕获插件”阶段,抓包器红色 LED 快闪。
win10识别为普通串口,枚举ID:
DFU识别:
结果:有该台PC上一直无法配置成功,换一PC成功。
win7系统无法识别驱动
现象:win7系统无法识别抓包器设备。
win7 未能安装驱动:
但能识别到设备:
如果按靠近USB的按键,则进入DFU状态,也能识别到设备(注:此时PID与抓包状态不同):
结果:使用win10系统,会自动识别,但win7不行。
重新烧录固件
根据官方论坛 devzone.nordicsemi.com/f/nordic-q-… 帖子的提示,在SDK/examples/usb_drivers
有驱动,更新驱动选该目录,但不成功。
另也有提到改固件:
in Windows 10, serial driver is loaded automatically for any device with class_02&subclass_02 in device descriptor (VID and PID doesn't matter). For Windows 8 and older, you need matching inf/cat files, and it will not install nordic_cdc_acm.inf as it has no VID/PID that match sniffer firmware.
As a quick fix, you can try to modify PID directly in hex file by changing two bytes at line 4085 (though I believe there should be some correct way):
:100EDC00120100020000004015191A52030201020F
org: :100EDC00120100020000004015192A5203020102FF
复制代码
实践如下:
插入抓包器,按板子上近USB的button,LED慢闪。打开nRF Connect for destop软件,Programer,sniffer_nrf52840dongle_nrf52840_7cc811f.hex文件按上面修改。拖到右边,点击左边Write烧写。
结果:失败。