Encoding 串接时的scapy编码
当您在scapy中字符串化一个数据包时,下面的编码是什么?这当然不是妖术 str(IP())'E\x00\x00\x14\x00\x01\x00\x00@\x00 |\xe7\x7f\x00\x00\x01\x7f\x00\x00\x01'Encoding 串接时的scapy编码,encoding,packet,scapy,Encoding,Packet,Scapy,当您在scapy中字符串化一个数据包时,下面的编码是什么?这当然不是妖术 str(IP())'E\x00\x00\x14\x00\x01\x00\x00@\x00 |\xe7\x7f\x00\x00\x01\x7f\x00\x00\x01' \x是十六进制表示法。在这种情况下,当您使用str(IP())时,您试图将数据包数据转换为字符串,但该字符串并不完全有效,因为在ASCII表中并不是所有原始十六进制数据都可以用字母替换,因此任何无法转换的十六进制都将以这种格式显示\x14 我认为下面的例子会
\x是十六进制表示法。在这种情况下,当您使用str(IP())时,您试图将数据包数据转换为字符串,但该字符串并不完全有效,因为在ASCII表中并不是所有原始十六进制数据都可以用字母替换,因此任何无法转换的十六进制都将以这种格式显示\x14 我认为下面的例子会有所帮助:
- 使用scapy方法查看数据包摘要
- 将数据包编码为十六进制格式以使用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' >>>
- 在SCAPY中,如果您创建一个IP层而不确定源和目标,则环回地址将被设置为这两个层的默认地址,如示例所示 “127.0.0.1>127.0.0.1 ip”
- .summary()是一个Scapy方法
- str(),.encode是一种python方法