我正在测试我的 Scapy 代码,当发送 UDP 时,Wireshark 显示 IPv4 协议(无法查看 UDP 数据包)。如何配置 Wireshark 以查看 IP 数据包以外的内容。还是别的什么?
Wireshark:
代码:
from scapy.all import *
from random import randint
while True:
pck1 = IP(dst="192.168.88.134", frag = randint(1, 8191), flags = "MF")/UDP(dport = 15000, sport = 15000, len = randint(1,40000), chksum =0)
send(pck1)
通过将
frag
设置为非零值,您可以告诉 Wireshark IP 数据包是较大负载的“中间片段”。当负载较大时,例如UDP 数据包正常分段,其 UDP 标头仅出现在第一个片段(即偏移量为 0 的片段)中,并且在每个片段中不重复。
(如果您手动将第二个 UDP 标头放入非 0 片段中,重组后它实际上会成为 UDP 数据有效负载的一部分!)
正因为如此,Wireshark 在片段内搜索 UDP 标头是没有意义的,因此它没有。它能做的唯一有用的事情就是在相同的捕获中搜索相邻片段并尝试重新组装它们 - 如果它找到包括 offset=0 片段在内的所有片段并成功重新组装它们,
然后它将能够检测到内部的 UDP。