最近公司在做乙個專案,要分析多個pcap檔案,需要呼叫wireshark來做分析,所以要熟悉wireshark原始碼,wireshark功能如此強大,源**看起來相當費力,為了盡快熟悉wireahrk,最好的辦法就是能除錯wireshark。接下來分別介紹(1).windows下如何編譯wireshark(2).wireshark原始碼中部分函式分析及使用
一.windows下如何編譯wireshark原始碼 1.
cygwin, 2.
python ,
本人使用
python26版本
3.wir
shark
從1.10
版本往下才會有
vs的工程檔案存在 4.
開啟wir
eshark
原始碼目錄,找到
config.nmake
,修改如下幾項: 1.
wireshark_libs,設定編譯
wireshark所需的庫所在的目錄,預設即可。 2.
program_files,設定本機程式安裝目錄,預設即可 3.
msvc_variant
,因為我使用
vs2008
編譯,所以這裡將值為
msvc2010
的那一行前的
#去掉,其餘
msvc_variant
項行首全部加上
#注釋掉 4.
.cygwin_path
,將其設定為
cygwin
的bin
目錄,例如
d:\source\cygwin\cygwin\cygwin\bin 5.
python
及其後的
path
,將其修改為本機
python.exe
和其安裝目錄的位置,例如
c:\python27\python.exe
。(也可採用預設) 6.
msvcr_dll,如果
vs安裝在d盤,請在這裡相應的地方用絕對路徑表示,而不要去修改前面的program_files,否則會出現意想不到的錯誤 例:
msvcr_dll=d:\softinstall\microsoftvisual studio 10.0\vc\redist\x64\microsoft.vc100.crt\*.* 5.
編譯wireshark 開啟
vs2010
的cmd
工具,找到
d:\softinstall\microsoft visual studio10.0\vc
\bin\
下的vcvars32.bat
,拖到cmd
裡的,再切換到
wireshark
原始碼目錄, 6.
依次輸入如下指令:
1.nma
ke -f makefile.nmake verify_tools
2.nmake -f makefile.nmake setup
c根目錄下
3.nmak
e -f makefile.nmake distclean
4.nmake -f makefile.nmake all
此命令可能會第一次出錯,再進行一次編譯就可以了
二.wireshark部分原始碼分析
1.編譯成功後,會在wireshark目錄下wireshark-gtk2目錄下產生一堆lib、dll,這些庫非常重要。下面的開發將會使用這些庫。這裡也可以進行除錯wireshark了,除錯看的會更容易明白wireshark是如何工作的了。
2.如何想將wireshark原始碼新增到vs中,方便單步除錯,這裡要說明一下,從wireshark1.10.9版本以前,才會有vs的工程檔案,此時需要自己建立乙個解決方案,將工程檔案新增到該解決方案中即可
3.靜態引用編譯成功產生的各lib,**如下:
這裡要說明的是,wireshark是需要glib庫的,要想載入wireshark庫首先要能正常載入glib庫,而glib庫為linux常用的c語言庫,需要先
移植到windows下,這個很容易,網上也是可以找到相關資源的,這裡不講述了
4.此時就可以進行wireshark二次開發了,先大概看明白wireshark,需要用到wireshark哪部分就載入哪部分,其實因為我們不需要介面部分,其實用到的還是tshark原始碼部分,像開啟pcap檔案、讀取pcap檔案,合併pcap檔案,解析pcap檔案,還有很多很多可以做,這些都比較容易的,這裡不再多說了
本人前段時間還將tshark原始碼成功移植到了android平台,實現了手機上抓包分析檔案,有時間分享給大家,這個目前市面上也是沒有的
postek二次開發 POSTEK二次開發介面
例項簡介 例項截圖 核心 using system using system.collections.generic using system.componentmodel using system.data using system.drawing using system.text using ...
mcms二次開發 YzmCMS二次開發手冊
摘要 yzmcms是採用mvc設計模式開發,基於模組和操作的方式進行訪問,採用單一入口模式進行專案部署和訪問,無論訪問任何乙個模組或者功能,只有一.yzmcms是採用mvc設計模式開發,基於模組和操作的方式進行訪問,採用單一入口模式進行專案部署和訪問,無論訪問任何乙個模組或者功能,只有乙個統一的入口...
mcms二次開發 YzmCMS二次開發手冊
yzmcms是採用mvc設計模式開發,基於模組和操作的方式進行訪問,採用單一入口模式進行專案部署和訪問,無論訪問任何乙個模組或者功能,只有乙個統一的入口。一 基本目錄結構.根目錄 cache 快取目錄 必須可寫入 common 全站公共目錄 必須可寫入 uploads 預設上傳目錄 必須可寫入 yz...