伪造数据包时要重新计算的字段

2024-05-16 12:18:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我和Scapy伪造了我捕获的一些数据包的IP报头中的TTL值。除了IP和传输层标头中的校验和之外,还有什么需要重新计算的吗?在

现在我在做:

for p in myPackets:
    p[IP].ttl = targetTTL
    del(p[IP].chksum)
    del(p[IP].payload.chksum) 

for i in range(len(myPackets)):
    myPackets[i] = myPackets[i].__class__(str(myPackets[i])) 

我之所以这么问是因为Scapy的sr函数将数据包与其响应相匹配(在我的例子中是ICMP)在几秒钟内返回数据,这是荒谬的,因为我使用的是ttl=1。在


Tags: inipfor数据包校验scapy传输层del
2条回答

你试过把包裹寄出去吗?Scapy应该为你重新计算校验和自动。你也可以试着把它们设置为“无”,但我不认为这是必要的。在

我相信如果您对数据包调用show2()命令,scapy将自动重新计算校验和。因此,如果在对象pckt的索引0处有一个包,那么应该调用pckt.show2公司()并且校验和应该是正确的。至少这是我的理解。在

pkt.show2() same as show but on the assembled packet (checksum is calculated, for instance) Source

相关问题 更多 >