2

Macで作成されたPCAPファイルがあります。これはmergecap、Appleのlibpcapを使用してMacで解析できますが、Linuxシステムでは解析できません。結合されたファイルには、 pcapファイルで一般的なイントロの0a 0d 0d 0a 78 00 00 00前に含まれる追加の16バイトのヘッダーがあります。4d 3c 2b 1aこれが16進ダンプです:

0000000: 0a0d 0d0a 7800 0000 4d3c 2b1a 0100 0000  ....x...M<+.....
0000010: ffff ffff ffff ffff 0100 4700 4669 6c65  ..........G.File
0000020: 2063 7265 6174 6564 2062 7920 6d65 7267   created by merg
0000030: 696e 673a 200a 4669 6c65 313a 2037 2e70  ing: .File1: 7.p
0000040: 6361 7020 0a46 696c 6532 3a20 362e 7063  cap .File2: 6.pc
0000050: 6170 200a 4669 6c65 333a 2034 2e70 6361  ap .File3: 4.pca
0000060: 7020 0a00 0400 0800 6d65 7267 6563 6170  p ......mergecap

誰かがこれが何であるか知っていますか?または、libpcapを使用してLinuxシステムで読み取るにはどうすればよいですか?

4

1 に答える 1

5

PCAPファイルがあります

いいえ、しません。pcap-ngファイルがあります。

これは、Appleのlibpcapを使用してMacで解析できます

libpcap 1.1.0以降では、一部のpcap-ngファイルも読み取ることができます(pcap APIでは、ファイルに1つのリンクレイヤーヘッダータイプ、1つのスナップショット長、および1バイトの順序しか許可されないため、すべてのセクションにあるpcap-ngファイルのみが同じバイト順序とすべてのインターフェイスのリンクレイヤーヘッダータイプとスナップショットの長さが同じです)、OS X Snow Leopard以降は1.1.xに基づくlibpcapを備えているため、これらのファイルを読み取ることができます。

(OS X Mountain Lion以降では、libpcapを微調整してpcap-ngファイルも書き込める-Pようにしています。このフラグにより​​、tcpdumpはpcap-ngファイルを書き出すことができ、一部の送信パケットには、プロセスIDとプロセス名を示すテキストコメントが添付されます。それらを送信したプロセス--pcap-ngを使用すると、テキストコメントをパケットに添付できます。)

ただし、Linuxシステムでは解析できません

Linuxシステムにはおそらく古いlibpcapバージョンがあります。(注:libpcapパッケージを「libpcap0.8」と呼んでいるDebianおよびDebian派生物と混同しないでください。まだlibpcap 0.8を使用していません。)

結合されたファイルには、0a 0d 0d 0a 78 000000を含む追加の16バイトヘッダーがあります

pcap-ngファイルは、4バイトのブロックタイプと4バイトの長さで始まる一連の「ブロック」であり、どちらもそれらを書き込んだホストのバイト順です。

それらは「セクション」に分割され、それぞれが「セクションヘッダーブロック」(SHB)で始まります。SHBのブロックタイプは0x0a0d0d0aです。これは、バイト順序に依存せず(SHBを読み取るためにバイト順序を知る必要がないため)、キャリッジリターンとラインフィードが含まれます(ファイルの場合、たとえば、UN * XシステムとWindowsシステムの間で、テキストファイルを転送していると見なし、行末を「役立つ」ように修正しようとするツールによって転送された場合、SHBマジックナンバーが破損し、ファイルがそのように転送されることによって破損します。これはショックインジケーターに相当すると考えてください)。

0x78000000は長さです。それに続くのは「バイトオーダーマジック」フィールドです。これは0x1A2B3C4D(pcapファイルの0xA1B2C3D4マジックナンバーとは異なります)であり、pcapマジックナンバーと同じ目的を果たします

  1. これにより、コードはファイルがpcap-ngファイルであることを識別できます。
  2. これにより、コードでセクションのバイト順序を決定できます。

(いいえ、pcapマジックナンバーを探す前に長さを知る必要はありません。マジックナンバーを見つけたら、長さをチェックして少なくとも28であることを確認し、以下の場合は以下であることを確認します。 28、ブロックが無効であるとして拒否します。)

誰かがこれが何であるか知っていますか?

(リトルエンディアン)pcap-ngファイル。

または、libpcapを使用してLinuxシステムで読み取るにはどうすればよいですか?

新しいバージョンのlibpcapを備えたLinuxシステムで読んでください(これは、使用しているディストリビューションの新しいバージョンを意味する場合もあれば、1.1.0以降のバージョンのlibpcapを取得する場合は単に更新を行うことを意味する場合もあります) 、WiresharkまたはTShark(キャプチャファイルを読み取るための独自のライブラリがあり、ネイティブのpcapおよびpcap-ng形式、および他の多くの形式をサポートしています)で読み取るか、tcpdump.orgから新しいバージョンのlibpcapをダウンロードします。 、ビルドしてインストールしてから、システムに付属しているバージョンではなく、そのバージョンのlibpcapを使用してpcap-ngファイルを読み取るために必要な他のツールをビルドします。

新しいバージョンのWiresharkは、mergecapなどのツールを含め、デフォルトでpcap-ngファイルを書き込みます。フラグ引数が。のpcapファイルを書き込むように設定できます-F pcap

于 2013-03-05T18:14:57.283 に答える