Ethereal源码的分析报告_第1页
Ethereal源码的分析报告_第2页
Ethereal源码的分析报告_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本文格式为Word版,下载可任意编辑——Ethereal源码的分析报告a

?????

display_filter中。

读disabledprotocols文件,保存全局变量global_disabled_protos和disabled_protos中

初始化全局变量cfile

?Cfile是个重要的变量,数据类型为capturefile,它保存了数据包的所有信息,取得命令行启动时,参数列表,并进行相应的处理初始化cfile的cinfo字段,这个字段用来干什么?

Gtk相关初始化,显示Ethereal主窗口,等待用户进一步操作

6.捕包及读文件模块

?捕包的流程

?入口函数为capture_start_cb

?捕包进程和主程序是通过PIPE进行传递数据的?捕包进程和主程序之间没有数据同步机制,也就是说,主程序不知道捕包程序是否

丢包。当主程序从捕包程序读数据失败时,返回。?主程序把捕获的数据写入到临时文件中

?捕包进程和主程序是同一个可执行文件,只是通过文件名不同,执行不同的操作。

这一点是以前没有遇到过的,

主程序在创立捕包进程后的操作为:1)从PIPE中读取数据

2)假使读到的数据是新建文件,则新建一个文件

3)假使是保存数据包,则将数据包写入2)建立的文件

7.协议解析模块

处理流程:

?从列表中选出一个数据包

?提取选中数据包中的数据,填写在数据结构中?调用协议解析函数epan_dissect_run进行处理

从epan_dissect_run开始,是实际的协议解析过程,用下图描述

a

a

通过特征字,查找Handle从Frame协议开始判断是否有上层协议封装程序初始化时,生成此Hash表协议解析模块Hash表查找Hash表,取得handle调用相应协议解析函数处理将协议解析结果

8.保存数据模块

保存为文件的流程:

1)从cf变量中取得抓包得到的数据2)调用协议解析模块,取得解析后信息3)将解析后信息写入文件界面显示模块的流程:

这个过程主要用到了gtk+的编程方法

1)在协议解析模块中,已经生成了协议树(数据保存在cf->edt->tree)中2)将tree在界面上显示出来3)二进制数据保存在cf->edt中

4)将二进制数据也在界面中显示出来。

9.统计模块

统计处理流程:

1)从cf列表中得到一个frame

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论