6

pcapファイルに対してfileコマンドを実行すると、-の行に沿って何かが出力されます。

$ file pcap.pcap
pcap.pcap: tcpdump capture file (little-endian) - version 2.4 ....

ビッグエンディアンのキャプチャファイルを作成する方法、または1つのサンプルをオンラインでダウンロードする方法を探していましたが、役に立ちませんでした。

また、pcapの正確な内容がリトルエンディアンまたはビッグエンディアンになるかどうかについても混乱しています。libpcapがネットワーク上で見たものをキャプチャしたことは私の理解でした。

4

3 に答える 3

10

そのための1つの方法は、ビッグエンディアンのマシンでtcpdumpまたはWiresharkを実行することです。たとえば、OSXを実行している古いPowerPCベースのMacを入手してみてください。

それ以外の場合、それらを取得する唯一の方法は、たとえば、Wireshark WikiのSampleCapturesページを調べて、キャプチャがSPARCベースのマシンまたはPowerPCベースのマシンで行われたと説明されているかどうかを確認することです。 (またはSGIマシンなどのビッグエンディアンMIPSマシンですが、DECマシンではありません)、またはビッグエンディアンマシンで作成されたキャプチャを含むWiresharkバグデータベースでバグを探します。libpcap / WinPcapは、キャプチャファイルをホストバイトオーダーで書き出します。目標は、ライブキャプチャを書き出す際のバイト交換のオーバーヘッドを排除し、ファイルを読み取るプログラムに負担を移すことです。

そして、はい、libpcap / WinPcapはネットワーク上で見たものをキャプチャしますが、たとえば、パケットのリンク層ヘッダータイプを提供するファイルヘッダーを追加し、各パケットに、パケットのタイムスタンプを提供するパケットヘッダーを追加します。パケット、ネットワーク上に表示されるパケットの長さ、およびキャプチャされたバイト数(キャプチャプログラムがパケットを最大サイズで「スライス」するように指示された場合は、CPUとI /Oの帯域幅を削減します)たとえば、リンク層、ネットワーク層、およびトランスポート層のヘッダーのみが対象である場合にキャプチャする場合)。 その情報は、ビッグエンディアンまたはリトルエンディアンです。実際のパケットデータネットワーク上での順序に関係なく(802.11の無線情報などのパケットメタデータは、 radiotap無線情報のリトルエンディアンなどの標準のバイト順序である場合もあれば、ホストのバイト順序である場合もあります)。 Linux USBメタデータの場合)。

于 2013-02-21T02:41:19.490 に答える
2

恥知らずなプラグですが、pcapファイルのエンディアンを変換するユーティリティを作成しました。

https://github.com/ehrmann/pcap-endianness-converter

于 2015-05-07T13:38:08.290 に答える
0

pcapファイルのエンディアンを変換するには、wiresharkまたはtcpdumpを使用することもできます。

  • wiresharkを使用すると、ファイルを開いて、変更せずに保存するだけです。保存されたファイルは、コンピューターと同じエンディアンになります。

  • またはtcpdumpを使用する場合は、「sudo tcpdump -rinputpcapfile-woutputpcapfile」を実行します。

このようにして、pcapファイルをコンピューターと同じエンディアンになるように変換できます。コンピュータがリトルエンディアンを使用し、pcapファイルがビッグエンディアンである場合、保存されたファイルはリトルエンディアンを使用するとします。これは一方向でのみ機能します。これを使用して、コンピューター以外のエンディアンに変換することはできません。

于 2016-07-01T13:11:28.963 に答える