码迷,mamicode.com
首页 > 其他好文 > 详细

wireshark源码分析 一

时间:2015-11-29 00:42:08      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:

因为手头的项目需要识别应用层协议,于是想到了wireshark,打算在项目中集成wireshark协议分析代码。在官网上下了最新版的wireshark源代码,我的天啊,200多M,这么多代码文件怎么看?在网上了找了很久,希望能找到别人的分析报告,可惜的是,找了很久也没有找到,比较多的还是怎么开发wireshark协议识别和分析插件,很少有人分析它的源代码。于是,我找了个查看源代码比较方便的工具——source insight,打算先瞧一瞧这些代码文件,说不定运气好,看着看着就知道它是怎么工作的。

    看过wireshark源代码的人应该知道,它的代码文件很多很多,而我也是第一次阅读别人这么多的代码,所以要把wireshark的协议分析代码集成到我的项目中,对我来说还真不是一件容易的事。花了很多时间,搜了很多资料,也看了很多资料,最后决定从wireshark的命令行模式——tshark入手,分析tshark是如何识别网络协议的。

    我决定利用断点调试查看tshark是如何工作的,但是要调试,就需要编译连接wireshark源代码。于是又开始找资料摸索怎么编译我wireshark代码。这部分的资料倒是比较好找,但是当时找的资料都不能顺利编译,最后在别人的基础上,加上自己的思考,终于编译成功。于是就有了上一篇文章描述如何在visual studio2008上编译wireshark源代码。

    啰嗦了这么多,真正开始分析tshark代码了。

    首先,成功编译后的wireshark源代码文件夹中出现了很多目标文件,还生成了一个wireshark-gtk2文件夹,里面有好几个exe文件,比如wireshark.exe,tshark.exe,dumpcap.exe等。具体如下所示:

技术分享

   这个图片就是wireshark-gtk2文件夹中的一部分。

   接下来,可以用visual studio2008(工具不限制,但最后是跟你编译时选定的工具保持一致)打开wireshark-gtk2所在目录下的工程文件,这样的工程文件有好几个,随便打开一个,其他的几个就会自动添加进来,因为所有的工程文件都在一个解决方案中,如下图所示:

技术分享

    因为只分析tshark部分的代码,所以可以把它之外的工程全部删除,然后在tshark工程源文件中有一个tshark.c的文件,在里面找到main()函数,这就是程序的入口,这时就可以下断点跟踪调试了。

    今天先写到此,明天再附上详细的分析报告。

wireshark源码分析 一

标签:

原文地址:http://www.cnblogs.com/littleKing163/p/5003840.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!