3

我试图在使用 Scapy 作为嗅探器时识别校验和不正确的数据包。我可以通过访问获得原始校验和

packet[TCP].chksum  

然后我删除它使用

del packet[TCP].chksum 

我想做类似的事情

if(originalChecksum == recomputedChecksum):
     # Checksum is valid

我知道使用 show2() 会重新计算校验和,但是无论如何可以访问此属性以与原始属性进行比较?调用 show2() 只显示校验和,而不设置数据包中的任何值。

感谢您的任何澄清

4

1 回答 1

2

让 Scapy 重新计算所有字段,通过将数据包转储到字符串来组装数据包,然后解析字符串。

originalChecksum=packet['TCP'].chksum
del packet['TCP'].chksum
packet=IP(str(packet))
recomputedChecksum=packet['TCP'].chksum
于 2011-07-12T16:01:43.897 回答