0

MACヘッダーの直後のファイルの先頭にFPGAによって追加された独自の記述子を含むキャプチャされたpcapファイルを読み取り、記述子に2バイトを追加して書き戻す必要があります。

Linuxでlibpcapライブラリを使用してCでこれを実装しようとしています。バッファを書き込むために pcap_dump_open() と pcap_dump() を呼び出す必要があるというのは正しいですか? また、pcap_dump でバッファを書き込む前に、それに応じて pcap_pkthdr から caplen と 'len' をインクリメントする (2 を追加する) 必要があるのは本当ですか?

前もって感謝します !

4

1 に答える 1

1

MACヘッダーの直後のファイルの先頭にFPGAによって追加された独自の記述子を含む、キャプチャされたpcapファイルを読み取る必要があります

したがって、パケット形式は次のとおりです。

  • MAC ヘッダー
  • 独自の記述子
  • ペイロード

?

記述子に余分な 2 バイトを追加し、書き戻します。

では、独自の記述子は 2 バイト長くなり、ペイロードを 2 バイト下に移動しますか?

Linuxでlibpcapライブラリを使用してCでこれを実装しようとしています。バッファを書き込むために pcap_dump_open() と pcap_dump() を呼び出す必要があるというのは正しいですか?

それがおそらく最も簡単な方法です。

また、pcap_dump でバッファを書き込む前に、それに応じて pcap_pkthdr から caplen と 'len' をインクリメントする (2 を追加する) 必要があるのは本当ですか?

パケットに 2 バイトを追加する場合は、パケットを書き出す前に、構造体のcaplenlenフィールドの両方を 2 ずつインクリメントする必要があります。pcap_pkthdr

問題の 2 バイトを追加するポイントまで、MAC ヘッダーとすべてのデータを独自の記述子に含めるのに十分な大きさであることが確実にわかっていない限り、caplenそれが次のことも確認する必要があります。そうでない場合は、問題のパケットを変更せlencaplen、その特定のパケットの のみを変更し、 を変更しないでください。

于 2013-07-13T18:10:02.397 に答える