为私有协议写一个wireshark插件
为公司私有协议写了一个Wireshark插件。这样可以直观分析抓到的包,对开发和调试都可以带来一些方便。
首先编译wireshark就挺折腾的,参考了网文还有Wireshark官方的 developer guide也还有一大堆错误,并且折腾到最后生成的wireshark exe文件还执行不了。。。幸好编译的插件可以用:)
有很多会出错,疏漏,或者需要注意的地方,网文没提到。
比如,网文会叫你用SVN客户端去check out一份Wireshark的代码下来。其实check out代码到windows上,有个问题,代码这样传到windows上,可能变成dos格式,出现某些编译器认不了的字符,当然这个时候你可以对每个文件都运行dos2unix这样的命令来转换。不过后来我觉得,你直接到wireshark官方注意下载一个稳定版本的代码压缩包更好,下载下来后解压缩,不会有这个问题。
还有,比如要把cygwin的bin目录加到path环境变量里头,不然会出现 不知道bash是什么 这样的错误提示。
还有config.nmake里头有个msvcr的dll的路径默认填的是 vs的英文版的路径,如果你装的中文版那就要相应改过来。
有个库geoIP,貌似用VS 2003有问题,链接的时候提示要找VC90的msvcr的库,我直接把geoip这个可选的库从makefile里头去掉了,源代码里头 ip-packet有引用的地方也把宏undef一把。最后把这个搞定基本可以编译成功,生成的wireshark可执行文件也运行没问题。
当然,要整插件出来,还要写好插件的makefile,熟悉协议的消息格式,并看developer guide看懂插件怎么写。
插件写成之后,初步在项目的测试中使用感受到极大方便,快速地看到代码的效果和正确性。
-------------------------------------------------------------------------------------------------
更多博文请订阅RSS,更多微博请关注@千里孤行Nerd