Wireshark C插件编译
一、开发环境
OS: Win10 64bit
- VisualStudio:VS2010
- Wireshark:Wireshark-1.8.6 (https://www.wireshark.org/download/src/all-versions/wireshark-1.8.6.tar.bz2)
- Cygwin:最新版
- Python:Python2.7.13
参考链接:
- https://wenku.baidu.com/view/854c986d011ca300a6c39081.html
- https://www.cnblogs.com/zzqcn/archive/2013/04/23/3039110.html
二、工具安装
1) VisualStudio安装不会就百度吧
2) Cygwin
http://www.cygwin.com/install.html setup-x86.exe 32-bit versions of windows
下载上述连接的安装文件,选择如下几个编译wireshark所必须,但默认又不安装的包
(分类/具体的包)
A. Archive/unzip
B. *Archive/zip (only needed if you intend to build the U3 package)
C. Devel/bison
D. Devel/flex
E. *Devel/subversion (optional - see discussion about using Subversion below)
F. Interpreters/perl
G. Utils/patch
H. Web/wget
I. Utils/dos2unix
3) Python安装,设置都选默认即可
三、环境变量设置
分别将C:\cygwin\bin C:\Program Files (x86)Microsoft Virual Studio 10.0\VC\bin 这两个路径添加到用户环境变量PATH中,上述两个具体的值请根据电脑安装路径确认。
四、Wireshark编译
1) 编辑config.nmake文件
下载完Wireshark源码后,在wireshark根目录下打开config.nmake文件,进行如下修改后才可以开始编译(更多说明请参考参考链接中的对应部分,本次编译只需修改如下即可)
VERSION_EXTRA=-HBUS
2) 验证工具
打开Visual Studio命令行工具(请确认是x86 32位的命令行),进入Wireshark源码目录,输入nmake –f Makefile.nmake verify_tools 成功的话会显示如下
3) 下载编译所需要的库
nmake –f Makefile.nmake setup
4) 执行编译清除
nmake –f Makefile.nmake distclean
5) 执行编译
nmake –f Makefile.nmake all
6) 编译成功后在 *wireshark\wireshark-gtk2目录下可以看到wireshark.exe可执行程序,如果能打开即编译成功
五、插件代码编写
示例代码参见packet-hbus.c 说明参考参考链接
六、插件编译
1) 在plugins目录下新建hbus文件夹
2) 将plugins/gryphon目录下的文件全部拷至hbus文件夹
3) 修改Makefile.am、Makefile.common、Makefile.in、moduleinfo.h、moduleinfo.nmake、CMakelists.txt文件中的gryphon修改成hbus
4) 将编写的packet-hbus.c、packet-hbus.h拷贝至plugins/hbus目录下
5) 进入plugin\hbus目录,输入nmake Makefile.nmake all 单独编译hbus插件可以进行插件编译检查程序的正确性。
6) 修改编译脚本
如下文件将被修改:
a) plugins/Makefile.am 中在SUBDIRS= $(_CUSTOM_SUBDIRS_) \ 下添加hbus
b) plugins/Makefile.nmake中PLUGIN_LIST添加如下
c) 在最顶层的Makefile.am中if HAVE_PLUGINS下添加如下图所示
d) 在最顶层configure.in文件中AC_OUTPUT规则中添加Makefile文件
e) 在epan/Makefile.am中添加如下
f) 在packaging/nsis/Makefile.nmake文件中给PLUGINS变量添加如下,用于NSIS安装器
g) 在packaging/nsis/wireshark.nsis文件中
7) 修改完上述文件后,进入wireshark根目录重新进行编译:
nmake -f Makefile.nmake distclean
nmake –f Makefile.nmake all
七、效果展示
如上图,在filter中输入hbus过滤其他类型报文
修改编译文件时,由于本次文件是参考cryphon这个协议修改的,因此只需要搜索对应文件的cryphon关键字都有哪些地方,相应的新增所添加插件名称的即可