2

我正在尝试过滤第 15 个字节(即 14 字节标头之后的第一个有效负载字节)是特定值的数据包,0x00或者0x01.

我感兴趣的数据包是原始以太网,即在逻辑链路控制层,所以我也过滤 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显示这两个数据包

第 15 个字节是第 3 种类型的数据包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数据包。

4

1 回答 1

2

这是请求的wireshark显示过滤器:

llc and (frame[14] == 0 or frame[14] == 1)

Wireshark 将每帧中的第一个字节计为字节 0,因此第 15 个字节为frame[14]. 单个字节不需要冒号(如文档中所述)。 and并且&&是等价的。 or并且||也是等价的。

于 2018-05-03T13:37:10.597 回答