0

これは私の最初の投稿であり、私は絶対にこのサイトの <3 です! とても素晴らしいコンテンツです!

それで、私は次の TCPDump コマンドを持っています。それが何を求めているのかを理解したいのです (平易な英語で)。

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

少なくとも 80 の値を持つバイト オフセット 12 (TCP ヘッダー長と予約済みビット) のすべての TCP パケットを取得するよう求めていますか? 私は間違っていると信じています。

上記が当てはまる場合、誰かが可能なバイナリを書き出すことができますか?

80 は 0101 0000 を与えます。私のメンターも書き留めました: 1111 0000 と 0111 0000. しかし、私には理由がわかりません...

80以上なら、そのためのバイナリーコンボは無数…

4

1 に答える 1

1

少なくとも 80 の値を持つバイト オフセット 12 (TCP ヘッダー長と予約ビット) のすべての TCP パケットを取得するように要求していますか?

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 に答える