我有两个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?谢谢。
答案 0 :(得分:2)
将RAW_IP文件转换为以太网封装文件(可以与其他以太网封装文件合并)的一种方法:
使用tshark从RAW_IP文件中获取数据包的十六进制转储:
tshark -nxr pcap-file-name | grep -vP "^ +\d" > foo.txt
(grep用于从tshark输出中删除“summary”行。)
使用text2pcap转换回pcap文件,同时添加虚拟对象 以太网标头:
text2pacp -e 0x0800 foo.txt foo.pcap
如果你想保留时间戳,你将不得不玩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