一文看懂使用Nordic nRF52840 Dongle 作为ZigBee sniffer抓包
nRF52840 Dongle最早由Nordic 公司在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:006778899 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通信包了。