Pcap捕获合并问题

时间:2011-06-17 16:36:12

标签: merge capture wireshark pcap tcpdump

我有两个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无法识别过去的第二个文件,并将cap1_wlan0.pcapcap1_stego0.pcap的数据包分别显示为raw packet data。同样使用“tcpslice”删除cap1_wlan0.pcap的以太网层(以使两个文件都具有rawip封装)显示无法识别的数据包数据。

我该怎么办?有一种方法可以将pcap与不同的封装合并,或者转换eth-> rawip或rawip-> eth?谢谢。

2 个答案:

答案 0 :(得分:2)

将RAW_IP文件转换为以太网封装文件(可以与其他以太网封装文件合并)的一种方法:

  1. 使用tshark从RAW_IP文件中获取数据包的十六进制转储:

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

    (grep用于从tshark输出中删除“summary”行。)

  2. 使用text2pcap转换回pcap文件,同时添加虚拟对象 以太网标头:

    text2pacp -e 0x0800 foo.txt foo.pcap
    
  3. 如果你想保留时间戳,你将不得不玩tshark输出 获取一个文本文件,其中包含text2pcap将接受的格式的时间戳,并且还包含十六进制数据包信息。

    [[ tcpslice是否有删除以太网头的选项? (查看手册页,似乎tcpslice用于从pcap文件中提取时间范围。)

    如果你有办法从捕获文件中删除以太网头文件,你必须确保生成的pcap文件的封装类型为RAW_IP,然后再尝试使用wireshark,mergecap等进行读取。

    另请注意,-cap切换到mergecap只会强制文件中指定的封装类型;实际封装不会改变(即,不添加/更改/删除字节)。 ]

答案 1 :(得分:0)

对于合并pcap文件,请尝试替代实用程序 - tcpmerge 示例合并命令: ./tcpmerge asd.pcap cap1_wlan0.pcap cap1_stego0.pcap OUTFILEMERGED.pcap