我正在尝试过滤第15个字节(即14个字节标头之后的第1个有效负载字节)是特定值的数据包,0x00
或0x01
。
我感兴趣的数据包是原始以太网,即在逻辑链路控制层,所以我也过滤LLC作为协议
以下是我的尝试:
llc && (frame[14:1] == 00 || frame[14:1] == 01)
这是绿色的,所以我非常确定语法是否正确。它只显示协议是LLC的数据包,但它也允许通过我希望避免的第15个字节为0x02
的数据包
我是如何成功地将第15个字节值作为目标,或者换句话说,有效载荷的第1个字节值?
示例数据包(从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同时显示这些数据包
第三种类型的数据包中第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
数据包。
答案 0 :(得分:1)
这是所要求的wireshark显示过滤器:
llc and (frame[14] == 0 or frame[14] == 1)
Wireshark将每帧中的第一个字节计为字节0,因此第15个字节为frame[14]
。单个字节不需要冒号(如in the docs所述)。 and
和&&
是等效的。 or
和||
也相同。