【wireshark】Wireshark原理分析與二次開發系列


1.版權聲明

本系列文章是本人花了很多心血寫成,wireshark本是開源軟件,本人也樂於技術知識和經驗的分享,更是欣賞和推崇開源精神,因此任何看到本文的人都可以隨意轉載,但只有一個要求:

在大段甚至全文引用本系列文章內容的情況下,需要保留本人網名(趙子清)和本博客地址的全部或一部分(http://www.cnblogs.com/zzqcn)。

2.引言

Wireshark是一款優秀的開源協議分析軟件,多年來,全球無數開發者為Wireshark編寫了數千種協議的解析插件(版本1.12.6已有1500余種),再加上強大易用的分析功能,使其幾乎成為協議分析相關人員必備的工具之一。

然而,並沒有一種工具可以完全滿足所有用戶的需要,強大如Wireshark者,也是如此。尤其對於專業的協議分析、安全人員來說,在實際的工作中,往往需要分析某些私有協議的報文,或者用到官方wireshark沒有提供的某些功能;而某些開發人員,則需要將Wireshark的報文解析功能移植到自己的應用場景中……這一切,都需要我們在理解Wireshark工作原理的基礎上,對其進行二次開發。

Wireshark的兩大特點使二次開發比較容易:

  • 代碼是開源的
  • 提供了插件機制(C/Lua)

本系列文章,就是為了介紹如何進行wireshark二次開發而寫的。

3.主要內容與約定

要對wireshark進行二次開發,必須先了解wireshark的基本工作原理,以及它提供的插件接口(Lua, C)。本系列文章首先介紹了wireshark的基本原理,之后介紹了Lua插件和C插件的編寫,最后介紹如何對wireshark進行修改,加入定制化功能。

對於一般的開發人員來說,學會如何編寫wireshark插件就可以了,這種情況往往是需要寫一個新協議的解析器,完成某種數據統計之類;而對於某些想要加入自定義功能的人來說,則必須對wireshark主要代碼進行修改。

本系列文章所有涉及到代碼開發的地方都會給出示例和運行結果,且都在Windows和MacOSX上進行了驗證,但是例子僅僅是例子,可能功能比較簡單,代碼格式也比較不規范。另外對於原理的描述,本人也正在學習過程中,有些原理描述可能淺嘗輒止,甚至有些小錯誤,也是在所難免,敬請原諒和批評指正。

4.文章索引

【wireshark】總體結構

【wireshark】抓包和文件格式支持

【wireshark】協議解析

【wireshark】開發環境搭建

【wireshark】插件開發(一):概述

【wireshark】插件開發(二):Lua插件開發介紹

【wireshark】插件開發(三):Lua插件 Dissector

【wireshark】插件開發(四):Lua插件Post-dissector和Listener

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM