如何更改重传数据包的有效载荷?

时间:2019-06-11 17:27:57

标签: scapy

我想尝试使用scapy实现RSTEG方法。也就是说,发送一个数据包,接收方不发送确认消息,而是再次发送此数据包,但是在有效负载中带有隐写符号的情况下,接收方也不发送确认消息。然后再次发送此程序包,但没有密写。 (同一数据包被发送了三次,但第二次发送了密写图。)是否可以用Scapy来实现,我该怎么办?

创建数据包并发送它们就没有问题。我可以使用超时并重试以不收到确认消息,然后重新发送程序包。但是我不明白在这种情况下如何更改有效负载并最终获得确认消息。

1 个答案:

答案 0 :(得分:0)

您可以执行以下操作-

packet=IP() / UDP() / ... / Raw(load=your_data) # the ... are for all your other protocols
response=sr1(packet, timeout=5)
if response is None:
    # response is not received, send it 2nd time
    packet[Raw].load = your_data_with_steganogram
    response=sr1(packet, timeout=1)
    if response is None:
        # response is not received, send it 3rd time
        packet[Raw].load = your_data
        response=sr1(packet, timeout=1)