问题描述
当我尝试使用Scapy修改IP标头字段并使用wrpcap将修改后的数据包写入pcap时,以太网填充层更改为Raw。
数据包的show功能显示了Padding层: pktn.show()
### [填充] ### 负载='\ x00 \ x00 \ x00 \ x00 \ x00 \ x00'
但是数据包的show2函数显示Raw层: pktn.show2()
### [Raw] ### 负载='\ x00 \ x00 \ x00 \ x00 \ x00 \ x00'
有什么主意,为什么要保留填充层?否则,Wireshark会将填充字节识别为TCP有效负载。
感谢1
解决方法
好。我终于发现更改标题字段后,以下代码行会导致此问题:
pkt [IP] .len = len(pkt ['IP'])
我试图使用此代码为新数据包分配IP标头长度,但似乎是导致此问题的原因,如果没有此行,则IP标头长度对于新数据包来说就很好。我仍然不太了解其背后的原因,但看来问题已解决。
谢谢!