一般来说使用impacket解包的步骤如下:
from impacket import ImpactDecoder
decoder = ImpactDecoder.EthDecoder()
data = decoder.decode(packet)
print data可以看到各层的头信息和包内编码。
后来print data 的时候遇到 LLC 实例没有 __str__属性的错误
半天没懂LLC实例是什么东西,看着挺像linux的,仔细一想以前解包是在windows 网卡取的数据,所以使用的是EthDecoder,在linux下需要使用LinuxSLLDecoder。
由于平台的差异性,很多时候windows模块和linux模块是不通用的,换用ImpactDecoder.LinuxSLLDecoder()后得到正确结果。
似乎linux中数据包中以太层封装的不一样。