wireshark外掛程式開發小結

2021-07-06 07:38:03 字數 2551 閱讀 7124

關鍵字:wireshark,  plugin, lua,protocol

wireshark是非常流行的網路封包分析軟體,功能十分強大。可以抓取各種網路包,並顯示網路包的詳細資訊。

為什麼使用wireshark

troubleshoot network problems   定位網路問題

debug protocol implementations  除錯自己實現的協議

learn network protocol internals 分析協議內部實現

分析網路效能

網路端點,統計每個端點的位址、傳送或收到的資料報的數量和位元組數。  

網路會話,統計位址a 和位址b 端點間會話的傳送或收到的資料報的數量和位元組數。

協議分層,可檢視各種協議的分布統計情況。

資料報長度分析。

wireshark是分析網路資料的利器,也是掌握計算機網路的工具。wireshark用c語言開發,架構合理。

wireshark從網路協議棧拷貝網路包,可以儲存為pcap檔案。

wireshark 內部實現

decodes protocols that are newly added.  解析新的網路協議

faster rebuilds and bug correction. (due to stand alone librariesgenerated for each plugin dissector)‏ 每個外掛程式是單獨的dll檔案,這樣可以快速替換外掛程式,加快外掛程式開發速度。

外掛程式檔案路徑 : 安裝目錄/plugins/ 

wiretap

used to read/write capture files       pcap檔案讀寫 

winpcap     (windows packet capture)是windows平台下乙個免費,公共的網路訪問系統。winpcap這個專案的目的在於為win32應用程式提供訪問網路底層的能力。它用於windows系統下的直接的網路程式設計。

wireshark使用c語言編寫而成,它支援動態鏈結庫形式的外掛程式擴充套件。除此之外,wireshark內建了lua指令碼引擎,可以使用lua指令碼語言編寫dissector外掛程式。

wireshark lua proto api

function

description

proto.new(name, desc)

creates a new protocol

proto.dissector

the protocol's dissector

proto.fields

the fields table of this dissector

proto.prefs

the preferences of this dissector

proto.prefs_changed

the preferences changed routine of this dissector

proto.init

the init routine of this dissector

proto.name

the name given to this dissector

proto.description

the description given to this dissector

proto主要用途是宣告乙個新的協議,進而可以給它編寫解析器函式

wireshark提供了25種函式可以建立各種型別字段。

dissector函式的第乙個引數buffer對應需要解析的二進位製碼流,第二個引數pinfo對應packet list視窗的資訊,tree是packet details視窗的樹結構。

dissectortable就是若干協議解析器(dissector)匯集成table,wireshark預設支援了一系列 dissector和dissectortable。例如tcp埠號21是ftp協議採用的埠,wireshark遇到這種訊息將自動呼叫ftp協議解析器來處理。

udp協議字段示例

外掛程式開發流程

使外掛程式生效,可以參考下面參考文件。

extending wireshark for a newprotocol.ppt

使用lua編寫wireshark自定義協議解析外掛程式      

wireshark外掛程式開發 C外掛程式解析

相比較而言,c語言就比較麻煩,需要準備一堆開發環境和第三方庫,不夠簡潔,不過 c語言的乙個優點就是快。然而,lua語言在指令碼語言也是出了名的快,除非報文的流量非常大。大概章節劃分 目錄 2 1.導言 3 2.自定義協議 3 2.1.概述 4 2.2.協議描述 4 2.3.客戶端 5 2.4.服務端...

Wireshark要點小結

wireshark是非常流行的網路封包分析軟體,功能十分強大。可以擷取各種網路封包,顯示網路封包的詳細資訊。使用 wireshark 的人必須了解網路協議,否則就看不懂 wireshark了。為了安全考慮,wireshark只能檢視封包,而不能修改封包的內容,或者傳送封包。wireshark能獲取 ...

wireshark外掛程式開發 自定義協議

雖然wireshark自帶了很多知名協議的解析外掛程式,譬如http dhcp等等,然而在實際應用環境中,有不少軟體之間的通訊協議都是私有的,如遊戲客戶端和伺服器之間的互動協議通常都是私有的,wireshark無法具體解析出各種字段之間的含義,只能顯示接收到的二進位制資料,給協議的分析和問題的排查帶...