Wireshark(不久以前叫Ethereal)是著名的網路通訊協定分析工具,支援多種協議報文解析……(此處省略若干字),下面是來自官方的說明:“Wireshark is the world's foremost network protocol analyzer, and is the de facto (and often de jure) standard across many industries and educational institutions”。
Wireshark支援Uinx和Windows等多平台,按照官方的Developer's Guide在Windows下編譯一個版本(0.99.8),以下是編譯步驟:(和Developer's Guide的Win32 Step-by-Step Guide一樣)。
1.安裝VC編譯器和Platform SDK。
在Windows用VC6到VC9之間的任個編譯器(VS2003 Toolkit除外)都可以編譯Wireshark。“Don't use cygwin's gcc!.”GCC(當然是Windows的)是不能正確編譯或者需要花一定的力氣才能正確編譯,所以手冊中沒有不推薦使用GCC。
至於Platform SDK在安裝 Visual Studio的時候都預設安裝的有,所以額外安裝。沒有安裝Visual Studio?不是吧?到街上按照5 RMB/張光碟片買個版本回來按照安裝說明安裝。到網下載?加上MSDN體積有點大,還是到街上買個D版的方便。
注意:安裝時要設定vcvars32.bat作為系統變數或者在編譯前調用vcvars32.bat。
2.安裝Cygwin
下載Cygwin的安裝程式,然後開始安裝……。如果網速不夠快,可以下載本地安裝包進行安裝(據說有500—600M,看來也不小)。
不管是線上或者是本地安裝,要注意選中下面幾個必需的包,這幾個包在Cygwin安裝時預設是不安裝的:
· Archive / unzip
· Devel / bison
· Devel / flex
· Interpreters / perl
· Utils / patch
· Web / wget
選擇方法: 展開後點擊skip,使其變為版本號碼即可.
3.安裝python
安裝python2.4版本,指導手冊上說2.5的可能有問題,但我的就是2.5,編譯是並沒有遇到問題^_^.
4. 安裝Subversion Client
這一步不是必須的,可以忽略。
5.擷取原始碼
擷取源碼後要修改源碼的config.nmake檔案來指定對應的對應的工具以及相關資訊,主要修改由下面幾個方面:
1.版本資訊設定
VERSION_EXTRA:指定自訂編譯的版本號碼,字串形式,例如:“-SVN-12345”。
2.路徑設定
PROGRAM_FILES:應用程式的按裝目錄,一般為C:/Program Files。這裡要注意如果相關的應用程式不是在同一盤符下面安裝的時候,可能會出現問題:
例如:
HHC_DIR=$(PROGRAM_FILES)/HTML Help Workshop //產生協助檔案的時候用到,好像安裝系統的時候就預設安裝到C:/Program Files。
MSVCR_DLL=$(PROGRAM_FILES)/Microsoft Visual Studio 8/VC/redist/x86/Microsoft.VC80.CRT/*.* //生產安裝程式的時候會用到,打報VC的運行庫
WIRESHARK_LIBS=E:/MyCode/wireshark/src/wireshark-win32-libs //依賴庫的路徑,依賴可可以通過makefile檔案自動擷取;
MSVC_VARIANT=MSVC2005 //指定編譯器類型
3.庫資訊設定
按照預設設定就可以了。
4.工具設定
CYGWIN_PATH=d:/cygwin/bin // cygwin的安裝路徑
PYTHON="d:/python25/python.exe" //設定python的路徑
MAKENSIS="d:/Program Files/nsis/makensis.exe" //設定nsis打包工具的路徑
INSTALL2_DIR=E:/MyCode/wireshark/wireshark-gtk2 //編譯輸出檔案路徑(GTK2版本的)
6.設定命令列環境
主要是設定關於VC的環境變數,使可以在命令列中直接運行nmake。同時要把當前的目錄設定成Wireshark源檔案的目錄。
7.編譯Wireshark
設定上面這些就可以編譯了,具體步驟如下:
1.驗證工具安裝是否正確
>nmake -f Makefile.nmake verify_tools
命令將輸出類似於下面的資訊:
Checking for required applications:
cl: /cygdrive/c/Programme/Microsoft Visual Studio 8/VC/BIN/cl
link: /cygdrive/c/Programme/Microsoft Visual Studio 8/VC/BIN/link
nmake: /cygdrive/c/Programme/Microsoft Visual Studio 8/VC/BIN/nmake
bash: /usr/bin/bash
bison: /usr/bin/bison
flex: /usr/bin/flex
env: /usr/bin/env
grep: /usr/bin/grep
/usr/bin/find: /usr/bin/find
perl: /usr/bin/perl
env: /usr/bin/env
C:/python24/python.exe: /cygdrive/c/python24/python.exe
sed: /usr/bin/sed
unzip: /usr/bin/unzip
wget: /usr/bin/wget
2.下載安裝庫檔案
>nmake -f Makefile.nmake setup
用wget下載和安裝庫檔案,這一步可能需要一些時間。
3. Distclean源檔案
>nmake -f Makefile.nmake distclean
Wireshark的原始碼包含一些為UNIX編譯而準備的檔案,在首次編譯前必須清楚你的源檔案。
4.編譯Wireshark
>nmake -f Makefile.nmake all
編譯需要一定的時間,編譯成功後再產生的目錄中執行wireshark.exe來檢查編譯是否成功。
如果編譯失敗,就按照對應的錯誤提示修改。
8.製作安裝程式(不是必須的)
要製作安裝程式需要完成下面的步驟:
1.下載和安裝NISS
安裝程式有NISS來製作完成,需要安裝NISS程式,同時也需要正確設定config.nmake檔案中的MAKENSIS參數。
2.擷取vcredist_x86.exe
複製VC的C運行庫的重新發布程式到$(WIRESHARK_LIBS)下面。
3. 產生安裝程式
> nmake -f Makefile.nmake packaging
執行成功後,產生的安裝程式在原始碼的/packaging/nsis路徑下,可以在其它的電腦上驗證安裝程式是否正確了….