關鍵字:wireshark, plugin, lua,protocol
wireshark是非常流行的網路封包分析軟體,功能十分強大。可以抓取各種網路包,並顯示網路包的詳細資訊。
為什麼使用wireshark
troubleshoot network problems 定位網路問題分析網路效能debug protocol implementations 除錯自己實現的協議
learn network protocol internals 分析協議內部實現
網路端點,統計每個端點的位址、傳送或收到的資料報的數量和位元組數。wireshark是分析網路資料的利器,也是掌握計算機網路的工具。wireshark用c語言開發,架構合理。網路會話,統計位址a 和位址b 端點間會話的傳送或收到的資料報的數量和位元組數。
協議分層,可檢視各種協議的分布統計情況。
資料報長度分析。
wireshark從網路協議棧拷貝網路包,可以儲存為pcap檔案。
wireshark 內部實現
decodes protocols that are newly added. 解析新的網路協議wiretapfaster rebuilds and bug correction. (due to stand alone librariesgenerated for each plugin dissector) 每個外掛程式是單獨的dll檔案,這樣可以快速替換外掛程式,加快外掛程式開發速度。
外掛程式檔案路徑 : 安裝目錄/plugins/
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無法具體解析出各種字段之間的含義,只能顯示接收到的二進位制資料,給協議的分析和問題的排查帶...