Windows下Wireshark編譯的是實(shí)現(xiàn)
編譯環(huán)境:VisualStudio,Python,Cygwin以及Wireshark源代碼。 1. VisualStudio Visual Studio 2005-2010都可以。 2. Python 下載安裝Python,從2.4 –2.7應(yīng)該都是可以的,我使用2.7版本。主要是在編譯過(guò)程中會(huì)使用到Python。 3. Cygwin 去Cygwin上下載最新版本安裝,然后開(kāi)始安裝,整個(gè)安裝過(guò)程是在線安裝,特別注意的是,以下庫(kù)必須安裝,否則不能順利完成編譯: Archive / unzip
Devel / bison
Devel / flex
Interpreters / perl
Utils / patch
Web / wget
4.QT5 QT5是wireshark1.11.0后新增的編譯工具,需要下載安裝QT5.0以上的版本,編譯的過(guò)程中需要使用。 5. 下載Wireshark源代碼 &編輯config.nmake 輸入這個(gè)網(wǎng)址,http://www./download/src/all-versions/,從上面下載Wireshark源代碼,這里,值得一提的是,最好下載頁(yè)面中給出的svn中的源代碼,能保證該代碼絕對(duì)是最新的。 下載完成之后,在Wireshark目錄里面打開(kāi)config.nmake,需要進(jìn)行一些設(shè)置之后才可以開(kāi)始編譯。 1、PROGRAM_NAME,項(xiàng)目名稱(chēng)。 2、WIRESHARK_LIBS, 設(shè)置編譯wireshark所需的庫(kù)所在的目錄,默認(rèn)即可。3、PROGRAM_FILES,設(shè)置本機(jī)程序安裝目錄,默認(rèn)即可。 4、CYGWIN_PATH,設(shè)置cygwin的安裝路徑。5、MSVC_VARIANT,設(shè)置VS的版本。6、MSVCR_DLL,如果VS安裝在D盤(pán),請(qǐng)?jiān)谶@里相應(yīng)的地方用絕對(duì)路徑表示,而不要去修改前面的PROGRAM_FILES,否則會(huì)出現(xiàn)意想不到的錯(cuò)誤。 7、QT5_BASE_DIR,設(shè)置QT的安裝路徑,可以使用qmake -query QT_INSTALL_PREFIX命令查看。
6.編譯Wireshark 用VS2008安裝的VS2008命令提示進(jìn)入或者通過(guò)CMD進(jìn)入之后,再去運(yùn)行VC下面的vcvars32.bat,或者是把vcvars32.bat拖到命令窗口,再回車(chē)就行。然后進(jìn)去Wireshark目錄,首先通過(guò)下面的命令檢驗(yàn)一下: 1、nmake -f Makefile.nmake verify_tools
2、nmake –f Makefile.nmake setup
注意:如果在之前運(yùn)行過(guò)可以不用在運(yùn)行(依賴(lài)庫(kù)已經(jīng)安裝,無(wú)需重復(fù)下載安裝)。 3、nmake –f Makefile.nmake distclean
4、nmake –f Makefile.nmake all
注意:如果編譯器是VS2005可能會(huì)報(bào)1077錯(cuò)誤,原因是編譯器的版本較低,可以根據(jù)錯(cuò)誤提示進(jìn)行修改。 我遇到的問(wèn)題有: 1、 格式轉(zhuǎn)換問(wèn)題。找到源碼出現(xiàn)錯(cuò)誤的地方,在賦值語(yǔ)句的右操作數(shù)前加上強(qiáng)制類(lèi)型轉(zhuǎn)換。 2、 源碼中定義windows函數(shù)指針時(shí),提示錯(cuò)誤為“****未定義”,在源碼中增加ifdef.h這個(gè)頭文件。將文件中的IF_OPER_STATUS這個(gè)枚舉類(lèi)型注釋掉,頭文件中包含iptypes.h。 到此wireshark編譯完成,在程序根目錄出現(xiàn)大量新文件和一個(gè)文件夾——wireshark-gtk2。 wireshark-gtk2中為一個(gè)完整可以運(yùn)行的程序。
6.利用VS2005調(diào)試Wireshark 如果使用VS2005調(diào)試wireshark工程,會(huì)出現(xiàn)無(wú)法解析工程文件的情況,解決辦法是先用記事本打開(kāi)工程文件,找到Version="*,00",將‘*’改為8(因?yàn)閂S2005的版本號(hào)為8,00)。 將wireshark所有工程的版本號(hào)轉(zhuǎn)換成自己需要的后,使用VS2005版本的用戶(hù)可以手動(dòng)將12個(gè)工程添加到一個(gè)工程里面進(jìn)行調(diào)試。工程目錄如下:
其它網(wǎng)友說(shuō)VS2008打開(kāi)其中一個(gè)工程即可打開(kāi)所有工程。 至此,準(zhǔn)備源碼分析前的調(diào)試工作完成了,下一章記錄源碼分析工程。
|
|
來(lái)自: Tornador > 《學(xué)術(shù)相關(guān)》