3

我有两个 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 无法识别过去的第二个文件,并分别显示as的数据包cap1_wlan0.pcap或数据包。还使用“tcpslice”删除以太网层(使两个文件都具有封装)向我显示无法识别的数据包数据。cap1_stego0.pcapraw packet datacap1_wlan0.pcaprawip

我能怎么做?有没有办法将 pcap 与不同的封装合并或转换 eth->rawip 或 rawip->eth?谢谢你。

4

2 回答 2

3

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

  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 将接受的格式的时间戳,还包含十六进制数据包信息。

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

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

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

于 2011-06-18T15:41:57.403 回答
0

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

于 2018-05-14T19:24:19.187 回答