仅捕获无法识别为其他协议的 UDP 流量

仅捕获无法识别为其他协议的 UDP 流量

我已应用udp过滤器来仅捕获 UDP 流量,如Wireshark 维基

仅显示基于 UDP 的流量:udp

但是,这不仅仅显示 UDP 流量。它还显示 UDP 流量以及在 UDP 之上构建的所有内容。

由于我只想分析我们自己的 UDP 流量,而且我还没有实现解析器,所以我正在寻找一种方法来仅显示无法识别为任何其他协议的 UDP 流量。

我想避免添加要排除的协议列表,例如避免在过滤器中出现长长其他协议列表:

udp && !http && !dhcpv6 && !bootp && !smb && !cldap && !mdns && !llmnr

如何才能捕获无法识别为其他协议的 UDP 流量?

答案1

首先请注意,您正在使用 Wireshark 的展示过滤器,与 libpcap 的捕获过滤器分开(并且非常不同)。(libpcap 本身有一个udp过滤器,但它只能理解很少的协议。因此,您将捕获所有内容,但会过滤显示的列表。)

在 Wireshark 中,“Frame”部分包含有关所解剖数据包的各种元数据,例如:

Protocols in frame: eth:ethertype:ip:udp:dns

这对应于frame.protocols字段。现在应用正则表达式~使用或匹配matches

udp && frame.protocols ~ ":udp$"

这将匹配最后识别的协议为 UDP 的所有数据包(即frame.protocols以文本结尾:udp)。请注意 - 某些流量可能会被误检测为某些模糊协议,即使事实并非如此。

udp &&前缀是一种优化——与字符串正则表达式匹配相比,协议匹配可能更有效地丢弃非 UDP 流量。)

相关内容