Merge Pcap捕获合并问题

Merge Pcap捕获合并问题,merge,capture,wireshark,pcap,tcpdump,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 及 我想把它们合并,但合并的方式不同。如果我使用 mergecap -v -w asd.pcap cap1_stego0.pcap

我有两个pcap文件

$ capinfos cap1_stego0.pcap 
File name:           cap1_stego0.pcap
File type:           Wireshark/tcpdump/... - libpcap
File encapsulation:  Raw IP
Number of packets:   713

我想把它们合并,但合并的方式不同。如果我使用

mergecap -v -w asd.pcap cap1_stego0.pcap cap1_wlan0.pcap -T rawip

Wireshark无法识别过去的第二个文件,并将
cap1\u wlan0.pcap的数据包
cap1\u stego0.pcap的数据包
分别显示为
原始数据包
。同时,使用“tcpslice”删除
cap1\u wlan0.pcap的以太网层(使两个文件都具有
rawip
封装)向我显示无法识别的数据包数据


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

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

  • 使用tshark从原始IP文件获取数据包的十六进制转储:

    tshark -nxr pcap-file-name | grep -vP "^ +\d" > foo.txt
    
    (grep用于从tshark输出中删除“摘要”行)

  • 添加虚拟文件时,使用text2pcap将其转换回pcap文件 以太网报头:

    text2pacp -e 0x0800 foo.txt foo.pcap
    
  • 如果您想保留时间戳,就必须对tshark输出进行一些调整 获取一个文本文件,该文件包含text2pcap将接受的格式的时间戳,并且还包含十六进制数据包信息

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

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

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

    对于合并pcap文件,请尝试其他实用程序- 合并命令示例: ./tcpmerge asd.pcap cap1\u wlan0.pcap cap1\u stego0.pcap OUTFILEMERGED.pcap

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