wireshark原始碼vs2008編譯

2021-07-05 14:53:39 字數 3237 閱讀 1752

最近需要開發

wireshark

外掛程式,分析一套協議,於是首先要解決的問題就是如何在

windows

環境下編譯

wireshark

,編譯過程中也借鑑了一些網上的資料,但是基本都有問題,在經歷無數次的失敗之後的摸索,最終在

wireshark

編譯成功。

在編譯過程中需要一下軟體:

visual studio

,python

,cygwin

以及wireshark

源**。

我使用的是

visual studio 2008

版本,據網上說從

vc6到

vs2008

都可以支援。根據本人經驗,新版本的

wireshark

原始碼中包含的

config.nmake

中已經主持多編譯器的編譯,包括

vs2010

和vs2013

,手邊有什麼編譯器就可以用其編譯。

python

,據網上說從

2.4 – 2.6

應該都是可以的,並沒有說明

python2.7

或2.8

也可以,經過我的驗證,我使用的

2.7版本也可以進行使用。主要是在編譯過程中會使用到

python。

去cygwin

1.  archive / unzip  

2.  devel / bison  

3.  devel / flex  

4.  interpreters / perl  

5.  utils / patch  

6.  web / wget  

在安裝cygwin

輸入這個**,

wireshark

源**,這裡,值得一提的是,網上所有編譯的

wireshark

都是0.99.7

版本的,其實這個版本是很有問題的。這裡建議編譯

1.2.7

版本,我是在

1.2.7

版本上面編譯成功的。

wireshark

目錄裡面開啟

config.nmake

,需要進行一些設定之後才可以開始編譯。

查詢: (1

)#msvc_variant=msvc2008

(樓主使用的是

vs2008

編譯,讀者可以根據自己的編譯器進行選擇

msvc2010

或者其他)

去掉其前面的

#,注意:只去掉

#msvc_variant=msvc2008中的#

前面的兩行別動。

(樓主編譯的是

64位,因此此處將

win32

改為了win64)

3)cygwin_path

改為你自己cygwin的安裝目錄,下圖為樓主配置:

4)python

改為你自己

python

的安裝目錄,下圖為樓主匹配:

儲存。至此,我們完成了

config.nmake

的修改。

執行cmd

命令列,注意使用管理員身份進行執行(不清楚如何使用管理員許可權的請自行度娘),查詢你編譯器的安裝目錄中

vsvars32.bat

位置,預設安裝一般為「

c:\program files (x86)\microsoft visual studio9.0\common7\tools

」(樓主

64位),將目錄複製,在命令列中輸入「

cd  c:\program files (x86)\microsoft visualstudio 9.0\common7\tools

」回車,如:

拖入到命令列中回車,用命令列開啟你

config.nmake

所在的wireshark

原始碼檔案,「

cd  c:\wireshark-1.12.7

」(樓主檔案),下圖:

(1)驗證安裝工具

在該命令列中輸入:nmake -f makefile.nmake verify_tools

,應該會產生乙個錯誤,

(2)安裝相應的路檔案

注意:此時必須是聯網的狀態。在上圖的命令列中繼續輸入:
nmake -f makefile.nmake setup 

回車

完成安裝後如圖:

生成的檔案如圖:

(3)完成後進行第(1)步的驗證,你會發現沒有了一開始的error

(4)清理源

在上圖中的命令列中執行:nmake -f makefile.nmake disclean

系統將進行對源目錄清理,清理中間生成的

obj檔案,為重新編譯準備。

接上圖中的命令列,執行:nmake -f makefile.nmake all

編譯時間比較長,如果編譯成功,則如圖所示:

你可以執行:c:\wireshark-win32-libs-1.12\gtk2\bin\wireshark檢查是否編譯正確

10進製VS2進製

對於乙個十進位制數a,將a轉換為二進位制數,然後按位逆序排列,再轉換為十進位制數b,我們乘b為a的二進位制逆序數。例如對於十進位制數173,它的二進位制形式為10101101,逆序排列得到10110101,其十進位制數為181,181即為173的二進位制逆序數。乙個1000位 即10 999 以內的...

Wireshark原始碼分析(二)

wireshark是乙個網路封包分析工具。可通過winpcap直接對網絡卡資料進行抓包,並通過內建協議進行分析展示。本人主要通過wireshark對無線通訊3gpp協議進行展開分析。用cmake構建專案,使用 glib庫 c語言 實現協議解析,前端使用qt進行介面展示。wireshark啟動時,需要...

65 題目1208 10進製 VS 2進製

題目描述 對於乙個十進位制數a,將a轉換為二進位制數,然後按位逆序排列,再轉換為十進位制數b,我們乘b為a的二進位制逆序數。例如對於十進位制數173,它的二進位制形式為10101101,逆序排列得到10110101,其十進位制數為181,181即為173的二進位制逆序數。輸入 乙個1000位 即10...