8

可能重复:
如何在不发送的情况下计算数据包校验和?

我在捕获的数据包中欺骗了源 IP 和 MAC 地址,但现在我需要重新计算校验和,以便在收到它后检查(当然是在注入网络之后)。我真的不想自己实现校验和,我想这scapy可以为我做这件事。我读到该show2()函数应该重新计算校验和,但我似乎无法让它工作。

那么,我如何使用scapy重新计算(和替换)捕获的 + 欺骗数据包的校验和?

谢谢!

4

2 回答 2

14

如此处所示,您必须.chksum在调用show2()方法之前删除该属性scapy

于 2011-05-24T16:01:22.843 回答
4

假设我们正在处理 IP 标头并希望在下一跳后重新计算校验和:

>>> iph = IP(import_hexcap())
0000 4500 0064 000f 0000 fe01 3726 c0a8 0108
0010 c0a8 030b
>>> iph.ttl = iph.ttl - 1
>>> del iph.chksum
>>> iph.show2()
###[ IP ]###
version= 4L
ihl= 5L
tos= 0x0
len= 100
id= 15
flags= 
frag= 0L
ttl= 253
proto= icmp
chksum= 0x3826
src= 192.168.1.8
dst= 192.168.3.11
options= 

.chksum领域有你的答案。

于 2011-05-24T16:02:53.397 回答