【问题标题】:Pcap capture merge problemPcap捕获合并问题
【发布时间】:2011-09-17 08:22:27
【问题描述】:

我有两个 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.pcap 的数据包或cap1_stego0.pcap 的数据包分别显示为raw packet data。还使用“tcpslice”删除cap1_wlan0.pcap 的以太网层(让两个文件都带有rawip 封装)向我显示无法识别的数据包数据。

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

【问题讨论】:

    标签: merge capture wireshark pcap tcpdump


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

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

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

      2. 在添加 dummy 时使用 text2pcap 转换回 pcap 文件 以太网标头:

        text2pacp -e 0x0800 foo.txt foo.pcap
        

      如果您想保留时间戳,则必须使用 tshark 输出 获取一个文本文件,其中包含 text2pcap 将接受的格式的时间戳,还包含十六进制数据包信息。

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

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

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

      【讨论】:

        猜你喜欢
        • 2011-01-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-01
        相关资源
        最近更新 更多