我正在尝试使用Scapy作为嗅探器来识别具有错误校验和的数据包。我可以通过访问
获得原始校验和packet[TCP].chksum
然后我使用
删除它del packet[TCP].chksum
我想做点什么
if(originalChecksum == recomputedChecksum):
# Checksum is valid
据我所知,使用show2()会重新计算校验和,但无论如何都要访问此属性以便比较原始值?调用show2()只显示校验和的内容,并且不会设置数据包中的任何值。
感谢您的任何澄清
答案 0 :(得分:2)
让Scapy重新计算所有字段,通过将数据包转储到字符串来组装数据包,然后解析字符串。
originalChecksum=packet['TCP'].chksum
del packet['TCP'].chksum
packet=IP(str(packet))
recomputedChecksum=packet['TCP'].chksum