3

2 つの pcap ファイルがあります

$ capinfos cap1_stego0.pcap 
File name:           cap1_stego0.pcap
File type:           Wireshark/tcpdump/... - libpcap
File encapsulation:  Raw IP
Number of packets:   713

$ capinfos cap1_wlan0.pcap 
File name:           cap1_wlan0.pcap
File type:           Wireshark/tcpdump/... - libpcap
File encapsulation:  Ethernet

それらをマージしたいのですが、カプセル化が異なります。私が使用する場合

mergecap -v -w asd.pcap cap1_stego0.pcap cap1_wlan0.pcap -T rawip

また

mergecap -v -w asd.pcap cap1_wlan0.pcap cap1_stego0.pcap -T rawip 

Wireshark は 2 つ前のファイルを認識せず、それぞれcap1_wlan0.pcapのパケットまたはのパケットを表示cap1_stego0.pcapraw packet dataます。また、「tcpslice」を使用してイーサネット層を削除するとcap1_wlan0.pcap(カプセル化された両方のファイルを持つためrawip)、認識されていないパケット データが表示されます。

どのようにできるのか?pcap を異なるカプセル化とマージする方法、または eth->rawip または rawip->eth に変換する方法はありますか? ありがとうございました。

4

2 に答える 2

3

RAW_IP ファイルをイーサネット カプセル化ファイルに変換する 1 つの方法 (その後、他のイーサネット カプセル化ファイルとマージできます):

  1. tshark を使用して、RAW_IP ファイルからパケットの 16 進ダンプを取得します。

    tshark -nxr pcap-file-name | grep -vP "^ +\d" > foo.txt
    

    ( grep は、tshark 出力から「要約」行を削除するために使用されます)。

  2. ダミーのイーサネット ヘッダーを追加しながら、text2pcap を使用して pcap ファイルに変換します。

    text2pacp -e 0x0800 foo.txt foo.pcap
    

タイムスタンプを保持したい場合は、tshark 出力を少しいじって、text2pcap が受け入れる形式でタイムスタンプを含み、16 進パケット情報も含むテキスト ファイルを取得する必要があります。

[[ tcpslice には、イーサネット ヘッダーを削除するオプションがありますか? (man ページを見ると、tcpslice を使用して pcap ファイルから時間範囲を抽出しているようです)。

キャプチャ ファイルからイーサネット ヘッダーを削除する方法がある場合は、wireshark、mergecap などで読み取る前に、結果の pcap ファイルのカプセル化タイプが RAW_IP であることを確認する必要があります)。

また、mergecap への -T スイッチは、ファイルで指定されたカプセル化タイプを強制するだけであることに注意してください。実際のカプセル化は変更されません (つまり、バイトは追加/変更/削除されません)。]]

于 2011-06-18T15:41:57.403 に答える