最近需要開發
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...