本文將通過一些示例介紹如何使用wireshark插件修改 PCAP 報文中的數據內容,具體包括增加一片報文中協議層,刪除整個文件中多餘的報文,爲整個文件增加一些必要的報文片等,作爲我的專欄《wireshark從入門到精通》中的一篇。
在抓包不是很方便的情況下,需要去構造或者修改一些特定格式的報文用以數據的測試。當然wireshark中手動方式也是可以修改報文的,在本專欄的前述文章也有提及。但是突出的問題就是效率非常的低下,如果要求修改1000個報文的話,相信你並不會使用手動的方式,那麼本文的插件方式應該會幫到你。
場景一
通常抓包獲取的報文中TCP上層的HTTP層只有一層,現在要求構造一個特殊的測試報文,使得應用層包含兩個HTTP層的報文頭,如圖1:
圖1
其實整體的思路並不複雜,即在一個HTTP報文中,將HTTP的頭部複製一份,插入到HTTP報文頭和body之間即可,實現代碼如下:
local getTcpStream = Field.new("tcp.stream")
local getSrcIp = Field.new("ip.src")
local getDstIp = Field.new("ip.dst")
local getSrcPort = Field.new("tcp.srcport")
local getDstPort = Field.new("tcp.dstport")
local getIpVersion = Field.new("ip.version")
local getIpLen = Field.new("ip.len")
local getArrival