我正在Ubuntu16.04(4.4内核)上使用替罪羊收集802.11个数据包。我的数据包的RadioTap头具有以下当前标志:
present=TSFT+Flags+Rate+Channel+dBm_AntSignal+b14+b29+Ext考虑到对RadioTap的描述,我预计通道将在头和前面字段后面的第10字节开始(8字节用于TSFT +1用于Flags和Rate)。通道的对齐度为2,因此不需要填充。然而,这是包中未解码的部分:
notdecoded=' \x08\x00\x00\x00\x00\x00\x00f\xc0 \x02\x00\x00\x00\x00\x10\x02l\t\xa0\x00\xa9\x00\x00\x00\xa9\x00' 在这种情况下,信道号实际上出现在字节18-19 ('l\t‘= 2412),并且我不确定到底哪个字节包含dBm信号强度。
有人知道我错过了什么吗?
发布于 2016-03-02 14:07:43
在深入研究规范之后,找到了答案:
Scapy不解析由位-32表示的扩展头(尽管它通过在上面说明+Ext来告诉我)。这些额外的标题是填充在前面的‘缺口解码’部分的数据包。我认为替罪羊至少应该从未解码的扩展头中删除,以避免将来的混淆。
在这种情况下,有两个额外的32位扩展位图头,占额外的8个字节。
如果有人想写一个更详细的答案,我接受它,否则我将清理这个答案,并永远接受它。
https://stackoverflow.com/questions/35642307
复制相似问题