0

我正在尝试使用 scapy 使用 ZigBee 协议,但无法正确识别捕获的流量。我创建了以下脚本:

import sys
from scapy.sendrecv import sniff

def pkt_hnd(pkt):
    print(pkt.summary())

sniff(offline=sys.stdin.buffer, prn=pkt_hnd, store=0)

我用来自https://github.com/homewsn/whsniff的数据提供给它。但是数据包似乎被错误地归类为 scapy SixLoWPAN / LoWPANFragmentationFirst / Raw

Dot15d4FCS / 802.15.4 Data ( None:0x0 -> 0x2c2b:0xffff ) / SixLoWPAN / LoWPANFragmentationFirst / Raw

为了比较,这是wireshark解析它的方式:

在此处输入图像描述

我可以以某种方式告诉 scapy 它应该假设这些数据包中的 ZigBee 流量吗?

4

1 回答 1

2

我找到了答案: https ://github.com/secdev/scapy/blob/cfe00d5c952e9048a40150390e0025b5ceff7228/scapy/layers/zigbee.py#L1175

当前解决方案:

import sys
from scapy.sendrecv import sniff
from scapy.config import conf

conf.dot15d4_protocol = "zigbee"

def pkt_hnd(pkt):
    print(pkt.summary())

sniff(offline=sys.stdin.buffer, prn=pkt_hnd, store=0)

于 2021-02-02T16:57:29.277 回答