可能重复:
How to calculate a packet checksum without sending it?
我已经在捕获的数据包中欺骗了源IP和MAC地址,但是现在我需要重新计算校验和,以便在收到它后检查它(当然是在注入网络之后)。我自己并不想真正实现校验和,我认为scapy
可以为我做这个。我读到show2()
函数应该重新计算校验和,但我似乎无法让它工作。
那么,如何使用scapy
重新计算(并替换)捕获的+欺骗数据包的校验和?
谢谢!
答案 0 :(得分:8)
答案 1 :(得分:3)
让我们说为了论证我们正在处理一个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
字段有您的答案。