在scapy中将数据包串起来时,下面的编码是什么?这肯定不是十六进制。
str(IP())'E \ x00 \ x00 \ x14 \ x00 \ x01 \ x00 \ x00 @ \ x00 | \ xe7 \ x7f \ x00 \ x00 \ x01 \ x7f \ x00 \ x00 \ x01'
答案 0 :(得分:4)
\ x是十六进制表示法。在这种情况下,当您使用str(IP())时,您正在尝试将数据包数据转换为不完全有效的字符串,因为并非每个原始十六进制数据都可以在ASCII表中找到,以用字母替换它,因此任何hex都可以转换将以这种格式显示\ x14。
我认为以下示例将有所帮助:
将数据包数据编码为十六进制格式,以便使用python方法进行查看
Welcome to Scapy (2.1.1-dev)
>>> pkt=IP()
>>> pkt.summary()
'127.0.0.1 > 127.0.0.1 ip'
>>> data=str(pkt)
>>> data.encode('hex')
'450000140001000040007ce77f0000017f000001'
>>>
考虑以下几点: