【问题标题】:Wireshark display filter; bitwise comparisonWireshark 显示过滤器;按位比较
【发布时间】:2019-06-22 01:43:07
【问题描述】:

给定一个 pcap 文件,我想根据 ip.src 上的按位比较将数据包分成四组,只比较 IP 中的两个特定位。例如,我想将此比较应用于 IP 的第二个字节和最后几位。因此,比较将如下所示:

a = xxxxxxxx & 0x03 //It is 8bits. Hence a includes 000000xx
IF (a == 0x00) THEN set0
IF (a == 0x01) THEN set1
IF (a == 0x02) THEN set2
IF (a == 0x03) THEN set3

不幸的是,只有 bitwise_and 选项可用。而且我不能在这里对 IP 进行按位运算。有什么解决办法吗?

我想到的是使用以下命令四次,每次使用相应的显示过滤器。

tshark -r <infile> -Y "<display-filter>" -w <outfile>

【问题讨论】:

    标签: filter wireshark tshark


    【解决方案1】:

    在 wireshark 中,打开 PCAP 文件并使用显示过滤器,如下所示:

    !(ip[12] & 0x01) and !(ip[12] & 0x02)
    (ip[12] & 0x01) and !(ip[12] & 0x02)
    !(ip[12] & 0x01) and (ip[12] & 0x02)
    (ip[12] & 0x01) and (ip[12] & 0x02)
    

    第一个匹配最后两位的 0b00,第二个 0b01,第三个 0b10,最后一个匹配 0b11。

    如果您需要其他位,最高有效位将是 0x04、0x08、0x10、0x20、0x40 和 0x80。 "&" 与 bitwise_and 相同。

    匹配每一个后,使用File -> Export Specified Packets 并确保标记Displayed 选项。这是一种根据需要将文件拆分为 4 组的方法。

    【讨论】:

    • 谢谢。有效。我最终为我的应用程序使用了以下显示过滤器(左起第二个字节中的第 3 和第 4 位):“!(ip.src [1] == 0x10)和!(ip.src [1] == 0x20) " 并重复这种风格三遍。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-25
    • 2013-11-20
    • 1970-01-01
    • 2017-08-08
    • 1970-01-01
    • 2014-10-18
    • 2021-08-16
    相关资源
    最近更新 更多