nrf52840 dongle最早由 公司在2018年推出,nordic公司宣称nrf52840 dongle是一种小型,低成本的usb dongle。这款dongle可以对zigbee进行抓包。本文档介绍如何使用nordic的nrf52840 dongle当作zigbee sniffer来使用。
nordic官方有如何将nrf52840 dongle 用作zigbee sniffer的英文介绍,链接地址:
本文使用的是rf-dg-40a作为nrf52840 dongle。
一、工具下载
1.nrf52840 dongle 用作zigbee sniffer,首先需要去官方下载zigbee sniffer固件,链接地址如下:
2.下载wireshark 2.4.5以上的版本,文中使用的是wireshark 3.2.3,链接地址如下:
wireshark 安装的时候需要注意以下几点:
(1)一定要勾选上红框中的。
(2)选中usbpcap并进行安装,版本比图示高也没事。
3.python 2.7 及以上的环境。这里使用的是python 3.7 版本。链接地址如下:
安装python没有什么需要注意的,直接一路next就行。
二、环境搭建
1.配置wireshark 环境:
(1)打开wireshark->帮助->关于wireshark->文件夹->双击打开extcp路径,如下所示:
(2)解压nrf-sniffer-for-802.15.4-master.zip文件。将nrf802154_sniffer文件夹里的“nrf802154_sniffer.py ”,“nrf802154_sniffer.bat”复制到刚刚打开的wireshark的extcp路径下,如图所示:
由于我之前装了其他的环境会有其它的一些文件,只要确保有这两个文件就行。
(3)打开wireshark设置参数,按ctrl shift p进入wireshark首选项。找到 protocols -> ieee 802.15.4,单击decryption keys,编辑解密密钥到以下设置:
decryption key:00112233445566778899 aabbccddeeff
decryption key index:0
key hash: thread hash
(4)找到protocols -> thread:
thread sequence counter: 00000000
use pan id as first two octets of master key: 不选中
automatically acquire thread sequence counter: 选中
(5)找到protocols -> 6lowpan
derive id according to rfc 4944: 不选中
context 0: fdde:ad00:beef:0::/64
context 1: 64:ff9b::/96 – for working with nordic thread border router
context 2: native ipv6 global prefix that is being propagated in the thread network.
(6)找到protocols -> coap
et coap udp port to: 61631
三、下载固件到nrf52840 dongle
1.将nrf52840加密狗插入usb端口。
2.按重置按钮进入dfu模式。 ld2 led开始闪烁红色。
3.启动nrf connect for desktop,并启动programmer应用程序。
4.从设备列表中,选择nordic semiconductor dfu bootloader。
5.单击添加十六进制文件,然后选择nrf-sniffer-for-802.15.4-master文件夹下nrf802154_sniffer文件夹里的“nrf802154_sniffer_dongle.hex “。
6.确保固件映像地址的开头是0x00001000。如果选择了错误的十六进制文件,则mbr部分可能会被覆盖。
7.单击写入以刷新固件。
8.从usb端口上卸下加密狗,然后再次插入。请勿按“重置”按钮。
四、重启电脑(必须重启)
1.重启电脑。
2.先插上下好固件的nrf52840 dongle。
3.打开wireshark,会识别出一个nrf sniffer for 802.15.4的设备。
4.设置对应的zigbee信道
5.点击开始就可以抓取当前信道下的zigbee通信包了。