如果tcptrace 可以处理带有Linktype Raw 的pcap 文件,那么您可以使用editcap 从数据包中去除前12 个字节,如果您使用@ 保存文件,甚至不需要添加虚拟以太网标头987654327@封装。例如:
editcap infile.pcapng outfile.pcap -L -C 12 -T rawip -F pcap
注意:这里我使用-F pcap选项强制输出文件保存为pcap文件而不是pcapng文件,因为我不知道tcptrace是否支持pcapng文件,而pcapng是如果您不指定输出文件类型,editcap 使用的默认输出文件类型。
如果tcptrace 不支持 Linktype Raw,那么您应该仍然能够完成您需要的工作,但是您必须获取从上面的editcap 生成的输出文件并进一步操作它。由于editcap 本身不支持向数据包添加虚拟以太网标头,因此您可以使用 Wireshark 将数据包保存到文本文件,然后将文本文件转换回 pcap 文件,但是当您将其转换回pcap 文件,您可以选择在数据包中添加虚拟以太网标头。最后一步也可以通过text2pcap 完成。以下是使用 Wireshark 的步骤:
- 加载 outfile.pcap 文件:文件 -> 打开... -> 文件名:outfile.pcap。
- 暂时禁用 IPv4 协议。这是为了确保不会发生重新组装;否则,如果发生任何重组,将不会以适合以后导入的格式生成输出文本文件:分析 -> 启用的协议 -> 协议 -> IPv4 -> 取消选择 -> 应用。
- 删除或隐藏所有列并添加绝对时间列。这允许您导出时间戳,虽然不是严格要求,但它非常有用:编辑 -> 首选项 -> 列 -> 取消选择所有列;添加 -> 字段类型:绝对日期,如 YYYY-MM-DD,和时间;标题“绝对时间”-> 确定。 (注意:为“Pcap2Text”目的创建单独的Profile 可能更容易,其中仅显示此列。这允许您在想要再次执行此操作时快速更改到此配置文件,而不会影响任何列其他工作资料。)
- 将数据包导出到文本文件:文件 -> 导出数据包剖析 -> 为“纯文本”文件... -> 文件名:outfile.txt;数据包范围:所有数据包;数据包格式:选择数据包摘要行(但不选择列标题)和数据包字节。
- 重新启用 IPv4 协议:分析 -> 启用的协议 -> 协议 -> IPv4 -> 选择 -> 确定。
- 关闭原来的 output.pcap 文件。
- 导入 output.txt 文本文件:文件 -> 从十六进制转储导入... -> 文件名:output.txt;偏移量:十六进制;日期/时间:选择;格式:“%F %T。” (没有引号,但结尾的 '.' 很重要——这是默认设置);导入封装类型:以太网;虚拟标题:选择;以太网 Ethertype(十六进制):0800 -> OK。
- 保存文件:文件 -> 另存为... -> 文件名:newfile_with_dummy_ethernet_header.pcap,保存类型:Wireshark/tcpdump/...- pcap (.pcap;.pcap .gz;.cap;.cap.gz;.dmp;.dmp.gz)
这个文件现在应该可以被tcptrace 读取了。我不能保证这是实现您目标的最方便的方法,但至少它适用于创建带有以太网封装的 pcap 文件,tcptrace 应该能够读取。
免责声明:这些说明是使用在 64 位 Windows 7 上运行的 Wireshark 1.12.13 生成的,或者更具体地说:
Compiled (64-bit) with GTK+ 2.24.23, with Cairo 1.10.2, with Pango 1.34.0, with
GLib 2.38.0, with WinPcap (4_1_3), with libz 1.2.5, with SMI 0.4.8, with c-ares
1.9.1, with Lua 5.2, without Python, with GnuTLS 3.2.15, with Gcrypt 1.6.2,
without Kerberos, with GeoIP, with PortAudio V19-devel (built Jul 28 2016), with
AirPcap.
Running on 64-bit Windows 7 Service Pack 1, build 7601, with WinPcap version
4.1.3 (packet.dll version 4.1.0.2980), based on libpcap version 1.0 branch
1_0_rel0b (20091008), GnuTLS 3.2.15, Gcrypt 1.6.2, with AirPcap 4.1.3 build
3348.
Intel(R) Core(TM) i5-2540M CPU @ 2.60GHz, with 8072MB of physical memory.
Built using Microsoft Visual C++ 10.0 build 30319