我試圖解析PCAP文件,但是我需要的LINKTYPE是的LINKTYPE_ETHERNET
,而當前文件我用LINKTYPE_LINUX_SSL
(這裏http://www.tcpdump.org/linktypes/LINKTYPE_LINUX_SLL.html文檔)從LINKTYPE_LINUX_SSL轉換PCAP格式LINKTYPE_ETHERNET
有誰知道這可能是我可以使用tshark
完成的一項任務,或者我將不得不破解一些自定義功能來完成轉換。
謝謝!
我試圖解析PCAP文件,但是我需要的LINKTYPE是的LINKTYPE_ETHERNET
,而當前文件我用LINKTYPE_LINUX_SSL
(這裏http://www.tcpdump.org/linktypes/LINKTYPE_LINUX_SLL.html文檔)從LINKTYPE_LINUX_SSL轉換PCAP格式LINKTYPE_ETHERNET
有誰知道這可能是我可以使用tshark
完成的一項任務,或者我將不得不破解一些自定義功能來完成轉換。
謝謝!
這個問題有been asked(和回答)在wireshark
自己的版本的堆棧溢出之前。但是我會在這裏再詳細一點。
上所有接口捕獲在Linux熟插座(SLL,不與SSL混淆)使用由wireshark
。繞過不同接口具有不同MAC地址的事實是一種聰明的方式。 SLL格式在鏈路層上沒有MAC地址,這在從多個接口捕獲時是有益的,但在嘗試將其轉換爲具有MAC地址的鏈路層時是個問題。
tshark
絕對不能這樣做。 tshark
不具備更改捕獲文件格式的功能。
editcap
是wireshark
的捕獲文件編輯器,它是用來更改捕獲文件格式的工具。仍然editcap
只改變文件格式,它不能自己重寫包。而你所問的關於重寫鏈接層。
沒有任何與wireshark
一起發貨的東西能夠重寫捕獲文件中的鏈接層。
你需要的是(適當命名的)tcprewrite
工具,其船舶在tcpreplay
package。你需要在命令行上添加MAC地址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
很可能要使用第二個命令,因爲它會看起來更可信ethernet
交談。
大多數操作系統的軟件包存儲庫中都有tcpreplay
。