-1

x バイトのカスタム ヘッダーを含む IP パケットがインターフェイスに送信されます。
最初の x バイトを無視し、IP パケットをデコードして表示するように tcpdump または tshark に指示する方法はありますか?
最後に行うことは、カスタム ディセクタを作成することです。

4

1 に答える 1

1

これは(おそらく)Linuxなので:

インターフェイスのドライバーは、ARPHRD_リンク層ヘッダーのタイプを指定する値を提供する必要があります(すべてのLinuxネットワークインターフェイスドライバーも同様です)。

そのARPHRD_値がそのリンク層ヘッダータイプに対して正しく、libpcapがそのARPHRD_値を知っている場合、それは適切なDLT_値にマップされ、tcpdump / * sharkは、そのDLT_値を理解している場合、パケットを処理できます。(そうでない場合は、サポートを追加する必要がありますが、tcpdumpと* sharkは、DLT_IPを転送するインターフェイスにlibpcapが提供できるすべての値をサポートしていると思います)。

そのARPHRD_値がそのリンク層ヘッダータイプに対して正しく、libpcapがその値を認識していないARPHRD_場合、「クックされた」キャプチャが実行されます。これは、カスタムヘッダーがlibpcapに提供されないことを意味します(ドライバーがskbuffの右フィールド。そうでない場合、ドライバーはバグがあります)、libpcapはDLT_LINUX_SLL「Linuxクックドモードキャプチャ」ヘッダーを使用して挿入します。Tcpdumpと*sharkは、の「Linuxクックドモードキャプチャ」ヘッダーを処理しDLT_LINUX_SLLます。

Linuxがそのカスタムヘッダーの値をまだ定義していない場合は、独自の値を定義ARPHRD_する必要があるかもしれません。libpcapはそれを認識せず、「クックドモード」キャプチャにフォールバックします。

于 2013-01-30T04:44:18.103 に答える