请教关于wireshark(ethereal)源代码分析问题。

xihons 2009-06-03 11:03:27
这几天在看wireshark(ethereal)源代码。看源代码的主要兴趣点是它的分析模块(dissect)。分析之后他的数据存在哪儿,怎么打印的(-V参数)。我想把分析后的数据,提取出来,存在自己定义的数据结构里面,或者按我自己的格式写入文本中。

看了几天,对一些数据结构,似懂非懂,一些流程也是似懂非懂。可能由于经验不足的原因,搞来搞去就在几个函数,结构体里面打转。好几次以为找到切入点,发现又回来原来的起点。
这两天看晕了。有点打击,水平太差劲了。。呵呵。先这边问问,看看有没有熟悉的朋友。指点一下。先谢谢了。
print_packet(capture_file *cf, epan_dissect_t *edt) 这个函数打印一个包?还是打印所有的包?

这样问问题可能太细了。感觉也不大合适。
1. 我应该如何来看代码?如何找到突破点?
2. 有wireshark有了解的朋友,说说你们关于源码剖析的体会。
3. 说什么都可以,朋友觉得对我有用,有启发就好。千万别 “我顶,UP啊”。呵呵

先谢谢各位。
...全文
2686 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
独孤过儿 2009-09-25
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 yinfie 的回复:]
请教一下wireshark中winpcap是怎么使用的?
[/Quote]
winpcap的官网上有tutorial

在wireshark中,winpcap主要是作为从网口上读取消息的库来用的
yinfie 2009-09-25
  • 打赏
  • 举报
回复
请教一下wireshark中winpcap是怎么使用的?
numax 2009-08-19
  • 打赏
  • 举报
回复
个人观点:
  楼上兄弟从全局整体的角度出发,去看"源码分析",是个比较好的方法。实现的机制,流程,程序本身总体的架构对于学习与理解源码是十分重要的.
从这方面来说,我二分赞同楼上这位兄弟的看法,但就楼上兄弟说的第2点,我有不同的看法:不排除个别的只是通过端口就来判定协议的分析方式,但对于重要的常用的协议,分析还是比较严谨的.
  
k_summer7 2009-06-27
  • 打赏
  • 举报
回复
我来发表一下我的陋见
-------------------------------------------------------------------------------
这样问问题可能太细了。感觉也不大合适。
1. 我应该如何来看代码?如何找到突破点?
2. 有wireshark有了解的朋友,说说你们关于源码剖析的体会。
3. 说什么都可以,朋友觉得对我有用,有启发就好。千万别 “我顶,UP啊”。呵呵
-------------------------------------------------------------------------------
1.看代码工具就不说了,source insight就ok,至于代码结构各位楼上的说了很多,也都很对,可是很重要的一点就是,
当拿到代码后,一定要先学会看Makefile,这是理清代码结构的最重要的,从我自身体会来讲,Makefile是将代码的结构清晰的展现到读者面前了,
make的过程就是组织代码的过程,哪些模块被Include最多,毫无疑问就是重点模块。
2.Ethereal的代码我看过,代码质量说实话一般,wireshark就是一个协议分析的工具,它的处理性能达不到工程、产品的性能,
协议分析的也比较随意,只是通过端口来判定协议的,可以说有一定的误判率,但是它的分析机制比较好,采用的是协议树,这个可以看一看。

此外,从我自身体会来说,我觉得从ethereal中可以学到最多的就是libpcap的使用,当然tcpdump的libpcap用的也不错,阅读代码没有必要逐行扫描,
关键要高屋建瓴,看清处理机制,流程,架构。
zhoushao12 2009-06-26
  • 打赏
  • 举报
回复
不懂,没到那个层次
threeleafzerg007 2009-06-26
  • 打赏
  • 举报
回复
成果。。。 啥成果呀 公布出来大家分享分享
frant 2009-06-26
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 xihons 的回复:]
快出成果了。
过两天结贴。
谢谢 几位帮助我的朋友。
[/Quote]

我现在也在分析这个,时间比较紧,能不能分享下,你的比较文档这些?? frant@qq.com
xihons 2009-06-07
  • 打赏
  • 举报
回复
快出成果了。
过两天结贴。
谢谢 几位帮助我的朋友。
独孤过儿 2009-06-04
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20090217/15/0b4dd8e5-2711-451c-a642-597665ee6f46.html

这是我以前贴的一篇帖子,玩wireshark的可以参考下
nyhenry1 2009-06-04
  • 打赏
  • 举报
回复
多谢两位呵呵,也谢谢楼主提出问题。
xihons 2009-06-04
  • 打赏
  • 举报
回复
谢谢 >过儿 hairetz.
听了你们的建议,心里有点底了。

你过一段时间很快就会忘记很多的,到时候翻翻笔记很方便。

是啊,我过一个晚上就忘记了。第二天貌似发现突破点,感觉这个函数很“新”,认真挖下去,发现原来已经挖过好几次了。- -!!

基本使用文档,man tshark 我有看过。
-------------------------------
天啦。现在我必须承认我忘记了GDB。
等出成果了。上来汇报。^_^
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xihons 的回复:]
引用 1 楼 hairetz 的回复:
楼主很强。源码哪里下的?

前辈 你不要雷我了。
wireshark 是开源的。上网很多地方都有下。
http://www.wireshark.org/download.html

-------------------------------------
抓住一个我就不放了。O(∩_∩)O~
>hairetz
能说说,你看代码的思路/方法/经验吗。工具应该都是用sourceinsight的吧。
[/Quote]

我没看过wireshark 的源码。
看大量的工程代码,我是用source insight。
然后就是针对具体的功能,(最好抓住你感兴趣的功能,找点突破)分析架构,顺着功能分析其实现的流程,做做笔记,记录下来。这样有利于积累成果,你过一段时间很快就会忘记很多的,到时候翻翻笔记很方便。
独孤过儿 2009-06-04
  • 打赏
  • 举报
回复
[Quote=引用楼主 xihons 的帖子:]
这两天看晕了。有点打击,水平太差劲了。。呵呵。先这边问问,看看有没有熟悉的朋友。指点一下。先谢谢了。
print_packet(capture_file *cf, epan_dissect_t *edt) 这个函数打印一个包?还是打印所有的包?

这样问问题可能太细了。感觉也不大合适。
1. 我应该如何来看代码?如何找到突破点?
2. 有wireshark有了解的朋友,说说你们关于源码剖析的体会。
3. 说什么都可以,朋友觉得对我有用,有启发就好。千万别 “我顶,UP啊”。呵呵

[/Quote]
笔记本的系统刚刚重装,因为最近在忙别的事,wireshark的src project还没导进来,所以看不到函数的的实现

体,只是大概写一下自己的感觉吧。

1、print_packet(capture_file *cf, epan_dissect_t *edt)

这个函数应该是只打印一个包的,而且是在图形界面上显示的时候,默认的窗口中在中间的最下面得区域,包含所有协议层数据的那个区域。当你在上面选择不同的包的时候,下面就会打印出来每一个包的详细信息。

2、我应该如何来看代码?如何找到突破点?

wireshare的设计特点是,一个主程序,其它的所有协议都做为插件来实现的。每一个插件只要去和主程序注册一

下,然后按照主程序的要求提供所需要的文件,比如解码器的,就可以了。详细的内容你可以参考wireshark官方

网站上,for developer的manual。

3、有wireshark有了解的朋友,说说你们关于源码剖析的体会。

这个貌似没什么好说的啊...无非就是了解架构,然后读代码。

你如果想玩这个,可以现在windows上或者linux上搭建一个wireshark的编译环境,然后自己去改代码,重新编译

后,看效果就行了。另外wireshark还有官方的maillist,你可以加入,有不懂的问题可以在那里面问。那里面的

人都很热情,很友好!
nyhenry1 2009-06-04
  • 打赏
  • 举报
回复
学习。期待hairetz发言
xihons 2009-06-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hairetz 的回复:]
楼主很强。源码哪里下的?
[/Quote]
前辈 你不要雷我了。
wireshark 是开源的。上网很多地方都有下。
http://www.wireshark.org/download.html

-------------------------------------
抓住一个我就不放了。O(∩_∩)O~
>hairetz
能说说,你看代码的思路/方法/经验吗。工具应该都是用sourceinsight的吧。
  • 打赏
  • 举报
回复
楼主很强。源码哪里下的?

23,121

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧