2011-06-17 59 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只是强制文件中指定的封装类型;实际封装没有改变(即,没有字节被添加/改变/删除)。 ]]