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打开其中一个工程即可打开所有工程。
至此,准备源码分析前的调试工作完成了,下一章记录源码分析工程。
注:因为没有转载的功能就直接复制过来了,不同的是我用的是Python2.7,Visual Studio2010 和 WireShark1.11.2源代码包。