在 wireshark 中,我尝试匹配有效负载不以 开头的数据包00 24
。但由于某种原因,此过滤器失败:
not(udp.payload ~ "^\x00\x24")
但令人惊讶的是,这个方法有效:
not(udp.payload ~ "^\x00\\x24")
还有这个:
not(udp.payload ~ "^\x00\\\x24")
为什么会发生这种情况?
答案1
matches
(或)运算~
符适用于字符串,不适用于字节。相反,您可以使用contains
或比较( ==
) 运算符以及片([]
) 操作员。
例如:
not (udp.payload[0:2] contains 00:24)
或者:
!(udp.payload[0:2] == 00:24)
请参阅wireshark 过滤器有关这些运算符的更多详细信息,请参见手册页。