将pcap格式从LINKTYPE_LINUX_SSL转换为LINKTYPE_ETHERNET

时间:2016-06-17 19:38:01

标签: wireshark pcap tshark

我正在尝试解析pcap文件但是我需要链接类型为LINKTYPE_ETHERNET,而我当前的文件使用的是LINKTYPE_LINUX_SSL(文档http://www.tcpdump.org/linktypes/LINKTYPE_LINUX_SLL.html

有没有人知道这是否是我可以使用tshark完成的任务,或者我将不得不一起修改一些自定义以获得转换。

谢谢!

1 个答案:

答案 0 :(得分:5)

此问题在ChildEventListener自己的堆栈溢出版本之前有been asked(并已回答)。但我会在这里重复一下细节。

所有上捕获时,Node使用了一个linux熟的套接字( SLL ,不要与 SSL 混淆)接口。这是一种巧妙的方法来解决不同接口具有不同MAC地址的事实。 SLL格式在链路层没有MAC地址,这在从多个接口捕获时很有用,但在尝试将其转换为具有MAC地址的链路层时会出现问题。

wireshark绝对做不到。 wireshark无法更改捕获文件的格式。

tsharktshark的捕获文件编辑器,它是用于更改捕获文件格式的工具。仍然editcap只更改文件格式,它不能自己重写包。你要问的是关于重写链接层。

wireshark一起提供的任何内容都无法重写捕获文件中的链接层。

您需要的是(适当命名的)editcap实用程序,它位于tcpreplay package中。您需要在命令行上将MAC地址添加到wireshark,包括源地址和目标地址:

tcprewrite

如果您确信两台设备正在通话,则可以使用tcprewritetcprewrite --dlt=enet --enet-dmac=52:54:00:11:11:11 \ --enet-smac=52:54:00:22:22:22 -i in.pcap -o out.pcap 的逗号语法。

--enet-dmac

您很可能想要使用第二个命令,因为它看起来更可信--enet-smac对话。

大多数操作系统在其软件包存储库中都有tcprewrite --dlt=enet --enet-dmac=52:54:00:11:11:11,52:54:00:22:22:22 \ --enet-smac=52:54:00:22:22:22,52:54:00:11:11:11 -i in.pcap -o out.pcap