iWireshark Windows编译环境搭建

1、安装Cygwin

我已经将ISO文件放在共享里面了,链接如下:

\\172.24.154.28\Software\Private Tools\Networking Tools\ cygwin-release-20061108.iso

2、安装python(2.4.4版本或2.5.2版本)

此处提供两个版本的python, wireshark的源码默认的是使用2.4.x版本的python,如果想用最新版本的wireshark,需要自己修改config.nmake文件。python链接如下:

\\172.24.154.28\Software\Private Tools\Networking Tools\ python-2.4.4.msi

\\172.24.154.28\Software\Private Tools\Networking Tools\ python-2.5.2.msi

3、安装TortoiseSVN(可选)

这是版本控制工具,用于从wireshark服务器checkout代码。这步不是必须的,可以下载离线代码编译,效果相同。TortoiseSVN链接如下:

\\172.24.154.28\Software\Private Tools\Networking Tools\TortoiseSVN-1.5.3.13783-win32-svn-1.5.2.msi

4、设置环境变量,包括两部分,添加Cygwin的环境变量和python的环境变量。

5、Checkout源代码或解压源代码

我下载了一个离线的源码包,链接如下:

\\172.24.154.28\Software\Private Tools\Networking Tools\wireshark-1.0.3.tar.gz

编译所需要的库文件本来是通过wget连接到服务器上下载的,但是公司的网络需要设置代理才能连接外网,且wget是命令行模式的操作,设置代理很麻烦,我就下载了一个离线的库文件,链接如下:

\\172.24.154.28\Software\Private Tools\Networking Tools\wireshark-win32-libs.rar

6、检查并修改配置文件config.nmake,主要修改了extra version和python路径,使2.5版本能够正常使用,如果是2.4版本,不需要修改。修改的内容主要有以下几项:

 

# EXTRA版本号,定制自己的开发版本,我修改的版本号是”fetag-1001”

VERSION_EXTRA="-fetag-1001"

# 编译时候所需库文件的存放路径

WIRESHARK_LIBS=D:\wireshark-$(PLATFORM)-libs

# 指定编译器类型,只需要选择一个自己机器上的Windows编译器即可,其余的编译器# 选项全部注释掉,我的编译器是.NET2008

MSVC_VARIANT=MSVC2008

# 指定cygwin可执行程序的安装路径

CYGWIN_PATH=c:\cygwin\bin

#指定python可执行程序的安装路径

PYTHON="D:/python25/python.exe"

7、执行C:\Program Files\Microsoft Visual Studio 9.0\VC\bin>vcvars32.bat,设置2008编译环境。

C:\Program Files\Microsoft Visual Studio 9.0\VC\bin>vcvars32.bat

C:\Program Files\Microsoft Visual Studio 9.0\VC\bin>"C:\Program Files\Microsoft

Visual Studio 9.0\Common7\Tools\vsvars32.bat"

Setting environment for using Microsoft Visual Studio 2008 x86 tools.

8、Verify编译工具安装情况:

D:\wireshark>nmake -f Makefile.nmake verify_tools

Microsoft (R) 程序维护实用工具 9.00.21022.08 版

版权所有 (C) Microsoft Corporation。保留所有权利。

Checking for required applications:

  cl: /cygdrive/c/Program Files/Microsoft Visual Studio 9.0/VC/BIN/cl

  link: /cygdrive/c/Program Files/Microsoft Visual Studio 9.0/VC/BIN/link

  nmake: /cygdrive/c/Program Files/Microsoft Visual Studio 9.0/VC/BIN/nmak

e

  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

  D:/python25/python.exe: /cygdrive/d/python25/python.exe

  sed: /usr/bin/sed

  unzip: /usr/bin/unzip

  wget: /usr/bin/wget

D:\wireshark>

9、安装编译时所需的库文件,库文件的保存路径在config.nmake文件中设置:

D:\wireshark>nmake -f Makefile.nmake setup 

Wireshark is ready to build.

10、开始编译,注意:packet-sndcp-xid.c和packet-ieee80211.c需要重新转存成编码为UTF-8

格式的,否则编译有问题。这是wireshark源码包自身的问题,我已经提交了Bug Report,但愿下一个版本能够解决(现在提供的这个源码版本是最新下载的,不知道是否存在这个问题):

D:\wireshark>nmake -f Makefile.nmake all

11、编译结束后,运行程序:

D:\wireshark>wireshark-gtk2\wireshark.exe