Python - Scapy原始十六进制视图

时间:2015-03-05 15:02:51

标签: python scapy hexdump

我构建了一个嗅探器,我想从数据包的Raw层获取数据,并在wx.TextCtrl中将其显示为hexdump。让我们说Raw会ABC显示65 66 67。我试过了:

self.txt.SetLabelText(" ".join(map(hex,str(pkt[Raw]))))

它引发了TypeError: hex() argument can't be converted to hex

有没有任何已知方法可以做到这一点? 我熟悉hexdump(pkt)但是它会打印hexdump以及转换为字符串而且也不会返回它。

1 个答案:

答案 0 :(得分:0)

class XStrField(StrField):
   def i2repr(self, pkt, x):
        return ' '.join(b.encode('hex') for b in x)

class MyRaw(Packet):
   fields_desc = [ XStrField("data", None) ]

conf.raw_layer = MyRaw