Zigbee数据抓包解析
一、抓包工具介绍
目前市场上主流有三种Zigbee抓包工具,“Packet Sniffer”,“Ubiqua” 和 “Wireshark”。我就用过Ubiqua和wireshark.
主要介绍Ubiqua和wireshark这两个抓包软件。首先Ubiqua这个软件是要付费的,想要免费使用懂的都懂。wireshark这个是开源免费的也是使用最多的。这两个软件都是抓包解析软件,都需要搭配一个硬件抓取Zigbee信号的,常见的有CC2531/CC1352R/CC1352P/CC2650/CC2652R1,这些都可以,淘宝上面随便买一个就行了,记得买完之后给这个装一下驱动,不然用不了。
FT230X驱动、FT232驱动、CH341驱动、CC531驱动、cp210X串口驱动资源-CSDN下载
工欲善其事,必先利其器。有上面的软件和硬件支持就可以进行数据抓包了。
二:Zigbee网络连接流程
在Zigbee协议中分物理层、MAC层等等,这些玩意了解一下就可以了。主要介绍Zigbee终端加入协调器的流程。
使用抓包软件获取这些数据包,前提是用对应的硬件来获取Zigbee信号,然后进入到软件里面,主要介绍wireshark。
首先有一个获取Zigbee信号的硬件之后,还需要装一个抓包软件TiWsPc,全套的资源我的资源里面有:
【免费】TiWsPc、Wireshark-4.4.1-x64的安装包资源-CSDN下载
装好这两个软件之后在你的桌面上会有这两个图标:


准备功能都已经完成,开始准备抓包。
1、首先要对Wireshark进行配置
安装完成后,点击快捷方式--->属性--->目标栏需要添加如下字符
-i \\.\pipe\tiwspc_data -k
-i\\.\pipe\tiwspc_data -k //注意-i 前面一定要有空格。

这样的目的是打通管道,获取到的数据才可以到wireshark里面。
2:检验抓包软件的驱动和TiWsPc软件是否联通
我使用的是CC2531,驱动在上面的资料里面有,插上硬件然后装上驱动,成功后会在你电脑的设备管理里面显示你安装的设备名字。

然后就可以打开你的TiWsPc软件了

那怎么把这个软件和硬件连接起来了?

如果你的硬件连接没问题就会出现到我下面的界面

上面显示设备名字这个和你的硬件是一样的,然后核心的就是那个channel的选择了,选择你设备对应的信道,然后点开始按键也就是Start就可以了。如果不知道使用的是那个通道,那我是一个一个试的,别的方法我也不知道。

一切正常的话这个就是显示绿色表示已经匹配上了。
然后就可以打开你的Wireshark软件了。
3、Wireshark抓包

如果一切正常的在你的软件左上角会显示正在捕获,到这一步就已经成功一大半了,但是如果直接使用你可以看到抓取的数据,但是你会发现你压根看不懂,因为在哪些数据包里面是有加密的,这也就需要进行输入秘钥进行破译,秘钥怎么获取了,这个我只能说根据你要抓取包的设备自行去获取了这个我是没办法的。
添加秘钥


点击添加秘钥就可以了,我给出常见的几种秘钥,其他的设备就需要自己去获取了。
5A 69 67 42 65 65 41 6C 6C 69 61 6E 63 65 30 39
82 1f d8 fd 9e 8b 54 49 7a b7 90 55 16 a3 8c 21
9b 24 d9 ca c7 60 e5 66 b3 5c b1 c2 5f 18 3d de
c4 f9 6a e7 00 05 06 d3 fc d1 62 7f b8 5d 7e eb
E0 43 57 0D 97 C4 C3 4F FF 35 13 C2 68 A0 04 B1
自己添加进去就可以了,能解析出来最好不能自己想办法,这个秘钥是固定16位的你看到符合这样的都可以去试一试。
4:数据包解析

解析之前先知道一下设备入网的流程。
抓包数据样式分析
1:设备请求入网
Beacon Request

这个请求是广播到所有网络(Destination PAN 0xffff)的广播消息(Destination Address 0xffff),因此同一通道里所有射频范围内的协调器都会受到请求。
应答:Beacon

1).如果协调器入网开关打开,并且设备数量还没有超限,则Association Permit = true,否则 = false
2).如果还允许router接入,则Router Capacity = true,否则 = false
3).如果还允许end device接入,则end device Capacity = true,否则 = false
4).NWK Extented PAN ID是网络唯一标识符,它和panid不一样
panid是16位的,在发生panid冲突时,该值可能会改变
Extented PAN ID是64位的,发生panid冲突时,终端可以根据Extented PAN ID找到原来的网络
上图的EPID:5c:27:03:b4:8f:e8:78:ad
2:设备关联请求
Association Request

关联请求会携带自身所属的设备类型(Device Type),并且需要对端分配一个断
应答:Association Response

应答中会携带父节点为子设备分配的段地址(short Address:0xf0f4),以及关联的状态是否成功:(ASSociate status)Successful。
3:密钥同步
Transport key

该指令告诉终端通信的网络密钥,协调器自己回保存密钥,终端收到密钥也需要进行保存。之后的通信都需要使用该秘钥进行通信。
4:设备发送自己是属性
Simple Descriptor Request
通信秘钥
cluster的ID
采用NWK Key进行加密。
应答为:Simple Descriptor Response

可以看到支持的所有cluster
上面的哪些入网的都不是核心,真正的核心就是最后这个,要知道有哪些cluster,然后去解析这些cluster。
如果你设置好的上面说的一切流程,都是正常的,那么你就可以看到这样的数据包样式。

核心需要查看的就是那个ZCL的数据,左下角里面有很多内容,只需要关注:Zigbee Application和Zigbee Cluster这两个。
自己做产品的话,核心就是要搞清楚需要哪些Cluster属性然后再去做对应的功能开发。
关于使用Wireshark抓包Zigbee数据就介绍这些了,有不懂的评论区沟通。使用Ubiqua这个和Wireshark基本一样,这个玩意就比Wireshark多一个设备之间连接的拓展图,正版的还要收费,看个人需求了。

使用这个软件就是比Wireshark少了一个TiWsPc软件,多了那个设备拓展图,别的都一样。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)