Wireshark捕获过滤器可以扫描两种不同的模式吗?

时间:2018-08-28 19:05:05

标签: wireshark

我需要一个捕获过滤器来查找一个4字节的机器ID,该ID可能会出现在UDP有效负载的多个位置。具体来说,

udp[18:4]==0x76123AA6 or udp[20:4]==0x76123AA6 or udp[25:4]==0x76123AA6

使用此过滤器进行实验确实会找到一些所需的数据包,但是如果使用上述过滤器,某些数据包将无法按预期方式通过过滤器。

BPF解释器的无环规则是否可以防止这种多重匹配过滤?

1 个答案:

答案 0 :(得分:0)

我发现我似乎缺少一些数据包的原因:搜索模式必须按顺序列出在捕获过滤器中。

例如,此过滤器可能会丢失某些数据包:

udp[18:4]==0x12345678 or udp[24:4]==0x12345678 or udp[20:4]==0x12345678

因为最后一个模式(20:4)的范围比更早的模式(24:4)在数据中更晚。

为了按预期工作,必须这样编写过滤器:

udp[18:4]==0x12345678 or udp[20:4]==0x12345678 or udp[24:4]==0x12345678

毫无疑问,我在原始问题中正确地写出了过滤器;我的代码的过滤器格式错误。