我正在尝试解析pcap文件但是我需要链接类型为LINKTYPE_ETHERNET
,而我当前的文件使用的是LINKTYPE_LINUX_SSL
(文档http://www.tcpdump.org/linktypes/LINKTYPE_LINUX_SLL.html)
有没有人知道这是否是我可以使用tshark
完成的任务,或者我将不得不一起修改一些自定义以获得转换。
谢谢!
答案 0 :(得分:5)
此问题在ChildEventListener
自己的堆栈溢出版本之前有been asked(并已回答)。但我会在这里重复一下细节。
在所有上捕获时,Node
使用了一个linux熟的套接字( SLL ,不要与 SSL 混淆)接口。这是一种巧妙的方法来解决不同接口具有不同MAC地址的事实。 SLL格式在链路层没有MAC地址,这在从多个接口捕获时很有用,但在尝试将其转换为具有MAC地址的链路层时会出现问题。
wireshark
绝对做不到。 wireshark
无法更改捕获文件的格式。
tshark
是tshark
的捕获文件编辑器,它是用于更改捕获文件格式的工具。仍然editcap
只更改文件格式,它不能自己重写包。你要问的是关于重写链接层。
与wireshark
一起提供的任何内容都无法重写捕获文件中的链接层。
您需要的是(适当命名的)editcap
实用程序,它位于tcpreplay
package中。您需要在命令行上将MAC地址添加到wireshark
,包括源地址和目标地址:
tcprewrite
如果您确信两台设备正在通话,则可以使用tcprewrite
和tcprewrite --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
。