原始以太网数据包中特定字节的 wireshark 显示过滤器
wireshark display filter on specific byte in a raw ethernet packet
我正在尝试过滤第 15 个字节(即第 14 个字节 header 之后的第一个有效负载字节)是特定值的数据包,0x00
或 0x01
。
我感兴趣的数据包是原始以太网,即在 logical-link 控制层,所以我也在 LLC 作为协议进行过滤
这是我尝试过的:
llc && (frame[14:1] == 00 || frame[14:1] == 01)
这是绿色的,所以我很确定语法是正确的。它只显示协议为 LLC 的数据包,但它也允许第 15 个字节为 0x02
的数据包通过,我想避免
关于如何成功定位第 15 个字节值,或者换句话说,第一个字节值的任何想法?
示例数据包(从 wireshark 复制),其中第 15 个字节是 0x00
:
0000 01 01 01 01 01 01 02 02 02 02 02 02 00 0e 00 05 ................
0010 00 00 00 05 00 00 00 00 00 00 00 01 ............
示例数据包,其中第 15 个字节是 0x01
:
0000 02 02 02 02 02 02 01 01 01 01 01 01 00 0a 01 05 ................
0010 00 00 00 0d 00 00 00 f1 00 00 00 00 00 00 00 00 ................
0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0030 00 00 00 00 00 00 00 00 00 00 00 00 ............
我想让 wireshark 显示这两个数据包
有第 3 种类型的数据包,其中第 15 个字节是 0x02
:
0000 02 02 02 02 02 02 01 01 01 01 01 01 00 39 02 ec .............9..
0010 41 61 02 a2 21 44 2b 0c 00 02 00 1c 0c 02 00 00 Aa..!D+.........
0020 00 00 00 00 00 00 00 00 00 00 00 ee 91 20 04 46 ............. .F
0030 22 44 2b cc 01 03 00 00 00 00 00 00 00 00 00 00 "D+.............
0040 00 00 00 00 00 00 00 .......
我想用过滤器排除这种类型的数据包。我上面的过滤器仍然显示这些 0x02
个数据包。
这是请求的 wireshark 显示过滤器:
llc and (frame[14] == 0 or frame[14] == 1)
Wireshark 将每个帧中的第一个字节计为字节 0,因此第 15 个字节为 frame[14]
。单个字节不需要冒号(如 in the docs 所述)。 and
和 &&
是等价的。 or
和 ||
也是等价的。
我正在尝试过滤第 15 个字节(即第 14 个字节 header 之后的第一个有效负载字节)是特定值的数据包,0x00
或 0x01
。
我感兴趣的数据包是原始以太网,即在 logical-link 控制层,所以我也在 LLC 作为协议进行过滤
这是我尝试过的:
llc && (frame[14:1] == 00 || frame[14:1] == 01)
这是绿色的,所以我很确定语法是正确的。它只显示协议为 LLC 的数据包,但它也允许第 15 个字节为 0x02
的数据包通过,我想避免
关于如何成功定位第 15 个字节值,或者换句话说,第一个字节值的任何想法?
示例数据包(从 wireshark 复制),其中第 15 个字节是 0x00
:
0000 01 01 01 01 01 01 02 02 02 02 02 02 00 0e 00 05 ................
0010 00 00 00 05 00 00 00 00 00 00 00 01 ............
示例数据包,其中第 15 个字节是 0x01
:
0000 02 02 02 02 02 02 01 01 01 01 01 01 00 0a 01 05 ................
0010 00 00 00 0d 00 00 00 f1 00 00 00 00 00 00 00 00 ................
0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0030 00 00 00 00 00 00 00 00 00 00 00 00 ............
我想让 wireshark 显示这两个数据包
有第 3 种类型的数据包,其中第 15 个字节是 0x02
:
0000 02 02 02 02 02 02 01 01 01 01 01 01 00 39 02 ec .............9..
0010 41 61 02 a2 21 44 2b 0c 00 02 00 1c 0c 02 00 00 Aa..!D+.........
0020 00 00 00 00 00 00 00 00 00 00 00 ee 91 20 04 46 ............. .F
0030 22 44 2b cc 01 03 00 00 00 00 00 00 00 00 00 00 "D+.............
0040 00 00 00 00 00 00 00 .......
我想用过滤器排除这种类型的数据包。我上面的过滤器仍然显示这些 0x02
个数据包。
这是请求的 wireshark 显示过滤器:
llc and (frame[14] == 0 or frame[14] == 1)
Wireshark 将每个帧中的第一个字节计为字节 0,因此第 15 个字节为 frame[14]
。单个字节不需要冒号(如 in the docs 所述)。 and
和 &&
是等价的。 or
和 ||
也是等价的。