使用nrf sniffer抓包笔记
说明
在做BLE开发时候难免会遇到要抓空中包分析问题的情况,这种时候一般要使用抓包器来进行分析。目前来说抓包器比较专业的如Ellisys那种,一台要几十万人民币,用过几次确实牛逼,但是太贵重了。而便宜点的就是用各家平台Dongle做的抓包器,廉价也够用了。早年比较流行的是TI CC2540的方案,现在最流行的应该是Nordic的52840方案。
硬件准备
硬件这里的话我们可以去购买一个52840/52833的dongle作为抓包器硬件。Nordic原厂几十块一个,国内生产的十几块一个。这里我都买了,实测下来两者性能没什么区别,毕竟都是用的通用的物料。
这里用胶带纸包住,避免用手触摸时静电打坏了。左边的是国产的,用的是常规的USB公头。右边的是原厂的,USB是用PCB版做了,真是省物料卖的还贵。
软件准备
软件这里的话需要按照Nordic的指导文档进行安装下载:Installing nRF Sniffer command (nordicsemi.com)
-
下载并安装nRF Util,该工具是个命令行工具,需要使用cmd终端进行使用。使用该工具安装sniffer命令和device命令。注意命令安装过程需要联网,而且由于安装包源在国外,最好打开梯子保证能连上。如果是在装不上命令也没关系,不用nRF Util后面也一样可以安装。
-
下载sniffer的固件:nRF Sniffer for Bluetooth LE - Downloads - nordicsemi.com,目前最新版本应该是4.1.1
-
使用nRF Util 的Device命令给Dongle烧录固件,原厂的52840 dongle都是支持USB烧录功能,不需要什么专门的烧录器。如果nRF Util显示无法连接的话可以使用dongle上的复位按键复位下板子,然后重新连接即可。
这里的固件烧录也可以nrf connect deskop来进行,过程都是类似的
- 安装wireshark:Wireshark · Download,该软件为实际抓包上位机,开源且免费,选择一个稳定版本进行下载安装即可
- 为wireshark安装sniffer插件,这里可以使用前面nrf util进行安装,也可以自己手动从下载的固件包里手动配置
如此需要安装的软件便齐全了,注意这里只是做概要说明,具体安装过程指导还需要看开头的Nordic原厂指导文档
使用方法
配置wireshark
安装好后打开wireshark界面,刷新接口应可以直接看到插好的sniffer dongle
点击小齿轮可以配置抓包选项,常规配置抓取选项即可,随后双击端口进入抓包界面
进入抓包界面后可以看到抓包信息,但是先别急,我们打开视图中的接口工具栏,把接口工具栏中的nRF Sniffer选中打开,打开后便能看的这个工具栏的出现
基本的抓取广播包
如果要抓取某一个设备的空中包数据,可以在工具栏中选择设备进行过滤
如果出现不了设备列表,请确认是不是Dongle固件和Wireshark插件版本不匹配,如果是需要重新刷对应固件
设置过滤器
如果要把某一项内容进行过滤器进行筛选,可以按上面的界面选择某项变量,选择为过滤器条件
如何抓取连接包
抓取连接包需要现在工具栏中选择好需要跟着设备,随后直接发起连接即可,抓包器会自动跟踪设备进入连接包信道进行抓取。
如果发现连接后,抓包器并没有输出连接包信息,那有可能是抓包器丢失跟踪了,把设备断连,重新连接即可,让抓包器重新进行跟踪