tcpdump筛选器用于获取tcp选项种类等于x的所有数据包

tcpdump筛选器用于获取tcp选项种类等于x的所有数据包,tcp,filter,tcpdump,Tcp,Filter,Tcpdump,花几个小时寻找tcpdump过滤器,以获得tcp选项种类等于x(特别是8)的所有数据包。Wireshark的过滤器只是tcp.option\u kind==8 阅读后,尝试使用“tcp[22]=8”,但没有成功 非常感谢您的帮助:)谢谢我只有部分答复。如果您要查找的选项总是第一个TCP选项,则可以使用以下筛选器: "(((tcp[12] & 0xf0) >> 2) > 20) && tcp[20] = 8" 此筛选器的作用是什么?此筛选器隔离字段(即T

花几个小时寻找tcpdump过滤器,以获得tcp选项种类等于x(特别是8)的所有数据包。Wireshark的过滤器只是tcp.option\u kind==8

阅读后,尝试使用“tcp[22]=8”,但没有成功


非常感谢您的帮助:)谢谢

我只有部分答复。如果您要查找的选项总是第一个TCP选项,则可以使用以下筛选器:

"(((tcp[12] & 0xf0) >> 2) > 20) && tcp[20] = 8"
此筛选器的作用是什么?此筛选器隔离字段(即TCP标头长度),以首先确保TCP标头包含所有选项。由于数据偏移量字段仅包含TCP头偏移量12处字节的前4位,因此我们必须通过应用
0xf0
掩码来隔离这些位。接下来,将该值向右移动4位,将其转换为我们可以使用的数字,然后乘以4(或向左移动2位),因为数据偏移量表示报头的32位字数。向右移动4,然后向左移动2的等价物就是向右移动2。如果数据偏移量值大于20字节,则我们知道存在一些TCP选项,我们可以将偏移量20处的字节(即第一个选项的“种类”字段的位置)与感兴趣的TCP选项种类(在本例中为8)进行比较,后者是最重要的

同样,只有感兴趣的TCP选项始终是第一个选项时,上述过滤器才会工作。如果该选项出现在其他选项之后,它将无法捕获这些数据包。扩展此过滤器以捕获感兴趣的TCP选项,而不管其位置如何,这是可能的,但我认为这并不容易做到