Wireshark编译环境搭建以及支持Etcd报文

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xxb249/article/details/80877746

一、安装编译软件

        为了扩展支持etcd报文解析,需要自己编译wireshark,因此搭建wireshark编译环境是必要的。编译wireshark需要如下软件作为支撑:
         python2.7(最好是稳定版本,不一定最新)
         cygwin(主要是跨平台编译)
         安装visualstudio 2010
         安装NSIS打包软件(主要用于将软件打包成exe安装包)
         下载wireshark源码及相关lib文件。
         以上内容必须先安装否则会报错,安装完python需要将其加入到环境变量中,否则在编译过程中提示找不到py文件。

二、编译过程

         1、解决编译问题
         开始--所有程序--Microsof  Visual Studio 2010 -- Visual  StudioTools  -- Visual  Studio命令提示(2010)
切到代码根目录中然后,执行如下命令行nmake-f Makefile.nmake setup,但是仍然报错:

问题1:

问题原因:

在安装cywin的时候未选择这些软件。
解决办法:
重新执行cywin安装程序,如下图所示,搜索要安装的软件:

问题2:找不到winpcap

 解决方法:
自己手动下载依赖库文件,放到c:/wireshark-win32-libs-1.12中(这个目录依据个人实际情况),https://anonsvn.wireshark.org/wireshark-win32-libs/tags/2014-10-01/packages/,这个地址是从上面错误信息得出的。

备注:建议将该地址的所有文件都下载到本地。

2、开始编译
当出现Wireshark is ready to build就可以进行编译了,执行 nmake -fMakefile.nmake all

编译基本上不会出现问题,当出现下面结果表示编译成功。

3、打包
    Windows是以exe形式发布,那么wireshark如何进行打包呢?执行如下命令行:nmake -f Makefile.nmake packaging 编译并打包。
    在打包过程需要依赖Qt-5.1.1-MSVC2010-win32-ws.zip,所以需要先下载好,此文件比较大。
问题1:缺少vcredist_x86.exe

从微软官方搜索该文件,下载并且放到wireshark-win32-libs-1.12目录中,再次执行打包命令则可打包成功。注意打包的应用程序为win32,非64位版本。

三、支持etcd报文

    为了支持Etcd报文,我们需要对wireshark进行扩展,具体如何扩展基本上参考现有协议,照猫画虎。

四、总结

    1、在编译过程中每个人的环境都不尽相同,尤其是安装cywin的时候,如果缺少什么文件,则按照上述方式安装即可。
    2、总体来说,编译wireshark问题不是很多,比较顺利。若有人基于wireshark开发第三方组件,大部分场景只需要动态库libwireshark.dll,那么可以偷懒,找一个已经发布好的版本,然后将编译好的libwireshark .dll替换即可。

    3、之前为了增加etcd解析报文,所以才研究wireshark源码,我已经将wireshark源码托管到github中,可自行下载。csdn中已经上传一份编译好的dll库,可自行下载
    4、由于项目需求,项目扩展了openflow协议,因此wireshark并不能解析,也就是从那个时候开始第一次接触wireshark源码,但只是略懂皮毛而已。但是这次增加etcd报文解析,算是进一步深入了解,对后续再有新的需求也不再发憷。
    5、由于etcd使用不是很深入,部分报文可能没有解析到,若发现报文无法解析,请留言。


猜你喜欢

转载自blog.csdn.net/xxb249/article/details/80877746