0

这是我的第一篇文章,我绝对 <3 这个网站!这么多很棒的内容!

所以,我有以下 TCPDump 命令,我想了解它在问什么(用简单的英语)。

tcpdump 'tcp[12] & 80 !=0'

它是否要求在字节偏移 12(TCP 标头长度和保留位)上抓取所有 TCP 数据包,其值至少为 80,这是真的?我相信我错了。

如果上述情况属实,有人可以为它写出可能的二进制文件吗?

80给0101 0000。我的导师也写了:1111 0000和0111 0000。但是我不知道为什么......

如果它至少是 80,那么它的二进制组合可能是无数的......

4

1 回答 1

1

是否要求在字节偏移 12(TCP 标头长度和保留位)上抓取所有 TCP 数据包,其值至少为 80,这是真的

10 进制的 80 是 16 进制的 50,所以它相当于tcp[12] & 0x50 !=0,它测试 TCP 头的第 12 个字节中的 0100 0000 位或 0001 0000 位是否被设置。0101 0000 是这样,但 1111 0000 和 0111 0000 以及 0100 0000 和 0001 0000 和 0100 1111 和......

如果你想测试那个字节的最高位,你会使用tcp[12] & 0x80 !=0. 实际上,这将匹配所有 >= 0x80 的值。

于 2013-09-13T03:31:04.970 回答