Windows下Wireshark编译的是实现

来源:互联网 发布:flash js 交互 编辑:程序博客网 时间:2024/04/18 17:32

Windows下Wireshark编译的是实现

 

编译环境:VisualStudio,Python,Cygwin以及Wireshark源代码。

1. VisualStudio

Visual Studio 2005-2010都可以。

2. Python

下载安装Python,从2.4 –2.7应该都是可以的,我使用2.7版本。主要是在编译过程中会使用到Python。

3. Cygwin

去Cygwin上下载最新版本安装,然后开始安装,整个安装过程是在线安装,特别注意的是,以下库必须安装,否则不能顺利完成编译:

Archive / unzip
Devel / bison
Devel / flex
Interpreters / perl
Utils / patch
Web / wget
4.QT5
QT5是wireshark1.11.0后新增的编译工具,需要下载安装QT5.0以上的版本,编译的过程中需要使用。

5. 下载Wireshark源代码 &编辑config.nmake

输入这个网址,http://www.wireshark.org/download/src/all-versions/,从上面下载Wireshark源代码,这里,值得一提的是,最好下载页面中给出的svn中的源代码,能保证该代码绝对是最新的。

下载完成之后,在Wireshark目录里面打开config.nmake,需要进行一些设置之后才可以开始编译。

1、PROGRAM_NAME,项目名称。

2、WIRESHARK_LIBS, 设置编译wireshark所需的库所在的目录,默认即可。3、PROGRAM_FILES,设置本机程序安装目录,默认即可。

4、CYGWIN_PATH,设置cygwin的安装路径。5、MSVC_VARIANT,设置VS的版本。6、MSVCR_DLL,如果VS安装在D盘,请在这里相应的地方用绝对路径表示,而不要去修改前面的PROGRAM_FILES,否则会出现意想不到的错误。

7、QT5_BASE_DIR,设置QT的安装路径,可以使用qmake -query QT_INSTALL_PREFIX命令查看。

 

6.编译Wireshark

用VS2008安装的VS2008命令提示进入或者通过CMD进入之后,再去运行VC下面的vcvars32.bat,或者是把vcvars32.bat拖到命令窗口,再回车就行。然后进去Wireshark目录,首先通过下面的命令检验一下:

1、nmake -f Makefile.nmake verify_tools

2、nmake –f Makefile.nmake setup

注意:如果在之前运行过可以不用在运行(依赖库已经安装,无需重复下载安装)。

3、nmake –f Makefile.nmake distclean

4、nmake –f Makefile.nmake all

注意:如果编译器是VS2005可能会报1077错误,原因是编译器的版本较低,可以根据错误提示进行修改。

我遇到的问题有:

1、 格式转换问题。找到源码出现错误的地方,在赋值语句的右操作数前加上强制类型转换。

2、 源码中定义windows函数指针时,提示错误为“****未定义”,在源码中增加ifdef.h这个头文件。将文件中的IF_OPER_STATUS这个枚举类型注释掉,头文件中包含iptypes.h。

到此wireshark编译完成,在程序根目录出现大量新文件和一个文件夹——wireshark-gtk2。

wireshark-gtk2中为一个完整可以运行的程序。

 

6.利用VS2005调试Wireshark

       如果使用VS2005调试wireshark工程,会出现无法解析工程文件的情况,解决办法是先用记事本打开工程文件,找到Version="*,00",将‘*’改为8(因为VS2005的版本号为8,00)。

将wireshark所有工程的版本号转换成自己需要的后,使用VS2005版本的用户可以手动将12个工程添加到一个工程里面进行调试。工程目录如下:

       其它网友说VS2008打开其中一个工程即可打开所有工程。

至此,准备源码分析前的调试工作完成了,下一章记录源码分析工程。

 

原创粉丝点击