2011-06-17 79 views
2

我有兩個PCAP文件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 

我想將它們合併,但incapsulation是不同的。如果我使用

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不能識別第二過去的文件,分別顯示了cap1_wlan0.pcap包或cap1_stego0.pcapraw packet data包。同樣使用「tcpslice」去除以太網層cap1_wlan0.pcap(爲了使兩個文件都與rawip封裝在一起)給我看看無法識別的分組數據。

我該怎麼辦?有一種方法可以將pcap與不同的封裝合併,或將eth-> rawip或rawip-> eth進行轉換。謝謝。到RAW_IP文件轉換爲以太網封裝文件(然後可以與其他以太網封裝文件合併)

回答

2

方式一:

  1. 使用tshark的獲得來自RAW_IP包的十六進制轉儲文件:

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

    (grep用於從tshark輸出中刪除「摘要」行)。

  2. 使用text2pcap轉換回一個PCAP文件,而加入虛擬 以太網頭:

    text2pacp -e 0x0800 foo.txt foo.pcap 
    

如果你想保持的時間戳,你必須與周圍的有點玩tshark輸出 以text2pcap將接受的格式獲取包含時間戳的文本文件,並且還包含十六進制數據包信息。

[ttpslice有一個選項可以刪除以太網頭? (看看手冊頁,看起來tcpslice用於從pcap文件中提取時間範圍)。

如果您確實有辦法從捕獲文件中刪除以太網頭,則必須確保生成的pcap文件在嘗試使用wireshark,mergecap等進行讀取之前具有RAW_IP封裝類型。

另請注意,-T開關到mergecap只是強制文件中指定的封裝類型;實際封裝沒有改變(即,沒有字節被添加/改變/刪除)。 ]]