网络分析软件Ethereal的源代码分析
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
函 库 持L u, r 和B 系 平台 7l p p 一 与 现 关 访 操 系 所 供 分 数 支 i x S ai S 统 " i c 是 个 实 无 的 问 作 统 提 的 组 n o s D l , a b
捕获机制的分组捕获函数库, 用于访问 数据链路层。 这个库为不同的平台提供了 一致的 编程接口, 在安装 了 lbcp的平台 i a p 上,以 l pa i cp为接口 b 写的 程序、应用,能够自由的跨平台 使用。基于 Ui 操作系 nx
与 它的 络 听 件 n e td l s r1 监 软 如Sf , up , [ 相比 E ea的 点 全 一 免 , 开 其 网 ir c m l n 2 p l o , trl 特 完 是 个 费 且 t等 he
放源码的软件。 你可以 根据自 己的需要,任意修改和补充。 它可以 运行在 Wno s U I 及 L u 等 i w , X以 i x d N n
系统的主程序启动过程如下: 读取抓包过滤器文件, 显示过滤器文件和无效的协议文件; 分析用户输 入的命令符,修改配置相应的参数;获取数据链路层抓包设备列表;设置抓包通道,进入抓包流程
cpue) atr (。
cpue) 函数内部流程如图1 atr( 所示。 atr ( Cpue) 函数内部大量调用了l pa 中的 i cp 接口函数, b 有几点
pa-tlc pa-t lh pa- tlith pa-tlu i.; tr-pa. ; tr-pa . . cpui. ; pui. ; pui-n.; pu i-nxc cpuewcpc cpuewcph c c c a a 32 . 流程分析
321 .. 关键数据结构 刘流程控制起到关键作用的有几个比较重要的数据变量: 在整个抓包源代码中,
根 di t e 据l n y 标识的 层类型 Ak p 链路
初始写抓包文件
对数据包进行分类
图2回调函数cp r pa_ 流程图 ate pe( u c b)
关键词:Ehra 网络监听 过滤器 teel
R sa h nto aa sbsd Ehra eer o e r nl t e o t el c f k y a n e w
Yo Z ag Se Qngo a Fi n Li n gu e h e h i
I tu oC m ui tn Eg ergP A i rto Si c ad ho g, j g 07C i n it f m n aos i en, U v s c ne Tcnl yN nn 200, a ste o c i n n i L n e i f y e n e o ai 1 h n A satEhr l et s e lao into aa s ad w rs ut Icn udr os f m bt cot e hs ni apctn e r nl i n nto e r . r nevrup trs r r a a x v p i i n w k y s e k i t u e e c y a n a i lo . a Wi t f te pn g r cd, s cn co et d f cos o i th sei nesT i t h e u o oei suc oeue cn t t x n i u tn acrn o pc l . s h a r f n o e sr a o r r e a e t n i c d g i s s a ed h ppr rdcs e tok vrn n rqi met ad i t l i i Lnx dsuss ae it ue t n w r e i met ur ns i n a a o n u , cse te no h e n o e e n t s l t n i s i h aci c r ad cpue cs, aa zs ky co cpue py rht t e te tr poesad l e t e fnt n tr del eu n h a r n ny h e u i a e .
流程起主要的控制作用 主要描述的是与捕获数据包存储文 件,存储文件过滤 ( 后过滤) 和数据 存储格式相关的参数。 主要用于底层抓包循环中循环控制
e ie fl
c p ue f l a tr _ e i lo d t o p a a
}d I
3 22流程分析 . .
计算机技术
1 1 37
调用s_c lk p( epa i t e) t p y 设 n
置数据链路层类型
调用wa ̄ ( 转化格式后的 t dm ) p u p将
调 a o f c c peV 用p p o m p p l ( 置 滤 e sfe) 过 器 a et 设 l r i 包转存到抓包文件中
多个平台。
本文安排如下。 首先介绍了Ehra 的监听原理和在Lnx teel i 下的安装; u 再从Ehra 抓包的原理入 teel
手, 要 析了E e a源 码 主 序 构 抓 流 并 关 数 行 分 ; 后 结 主 分 t r l 代 的 程 结 和 包 程, 对 键函 进 了 析 最 是小 。 he
17 30
现代电子信息技术理论与应用
能力) 而Ehra 就是一种能将本地网 , teel 卡状态设成混杂状态的软件 Ehra 软件可以 teel 运行在多个平台, 但只有在 Lnx i 下面是开放源码的,我们主要讨论Ehra 软件在 u teel Lnx 安装。 iu 下的 要完成安装需要一 下 s 几步I l 到Ehra 的官方网 l tee 站上下载Ehra 的 teel 源码 ehra-. . g; teel01 7tr z 0 a. . 解压文件¥a zv ehra- 1. r z tr f eel . . g; x t 0 07t . a 确保己 经安装gk l pa 软件包; t 和 i cp b 配置文件¥/ofgr; .cniue 编译¥ae ; mk 安装¥ae tl; isal mk n 运行, 在字符方式下¥ehra;在图形方式下¥teel tteel ehra, 如果要对软件进行修改,可以 修改源文件, 然后编译¥ae mk,这时编译器会对系统进行检查,只编译 修改的文件。 这时不需要安装, 直接运行¥八ehra . teel或¥/teel .ehra 来看调试的结果。
2 hra 的 E eel 监听环境与安装使用 t
通常在同 一个网段的所有网 络接口 都有访问 在物理媒体上传输的所有数据的能力, 而每个网络接口 都 还应该有一个硬件地址, 该硬件地址不同于网 络中 存在的 其他网 络接口的 硬件地址,同时, 每个网 络至少 还要一个广播地址。 代表所有的 ( 接口 地址) 在正常情况下, , 一个合法的网 络接口 应该只响 应这样的两种 数据帧:1 、帧的目 标区域具有和本地网络接口 相匹配的硬件地址;2 帧的目 、 标区域具有” 广播地址” 在 。 接受到上面两种情况的数据包时,网卡通过CU P 产生一个硬件中断, 该中断能引 起操作系统注意, 然后将 帧中 所包含的数据传送给系统进一步处理。 然而,当网卡被设置成’ 混杂’(rms os 方式时,它对遇到的每一个帧都产生一个硬件中断以 poic u) u 便提醒操作系统处理流经该物理媒体上的每一个数据帧。( 绝大多数的网卡具备置成 poicos rmsuu 方式的
网络分析软件 Ehra 的源代码分析 teel
姚 菲’ 张 磊 沈庆国
解放军理工大学通信工程学院 江苏 南京 200 E a: 107 m i l
摘 要: teel 络分析和网络安全 Ehra在网 方面有 着广泛的应用。 它能够在多 种平台下 运行, 源代 而且 码开放, 用 户可以 对其进行添加或裁减以 满足自 的 己 特殊需 本文首 求。 先介绍了Ehra 的 环境和在Lnx teel 监听 i 下的安 u 装过 程。 后从 E e a 抓 原 手, 分 然 t r l 包的 理入 着重 析了 E e a 源 码的 程 结 和 包 程 并 键函 he tr l 代 主 序 构 抓 流 he 对关 数 cpue) atr( 进行T 详细分析。
3 hra 源自文库代码分析 E eel t
这里主要是对原代码中的 程序流程和抓包流程进行了分析, 给出了 部分关键功能的函数并对这些函数 进行了介绍。 31 p p a 介绍 .l c i b Ehra 与其他 tpup sot teel cdm, r 等著名软件包一样, n 都是基于 l pa 库, i cp 在分析主 b 要流程前,先 介绍 一 l pa 库及其Ehra 原代码中 下 i cp b teel 用到的主要函数。 lbcp i a 的英文意思是 Pce Cpue rr,即 p akt tr l ay 数据包捕获函数库。 a i b 该库提供的C 函数接口 可用 于需要捕获经过目 标地址网络接口 数据包的系统开发上。由 Bree 大学Lwec Bree Ntoa ekl y arne kly inl e a Lbrtr 研究院的Vn osn Cag e 和 See MCne aoaoy a Jcbo, i Lrs tvn an 编写,口 a r e c 前的 最新版本为04 .。该
}量 名 变
cpu ec id atr_ l h
变量类型
g o la b o en
功能描述
cp u e o t a tr _ s p
c u e to s 即tr o in p
标识该进程是否子进程 记录上层在抓包前的 些选项的设 置, 部分参数与Ehra 中Cpue teel atr
如tos对话框的 in 选项对应,对抓包
统所提供的分组捕获机制主要有二种:BF ekl Pce Fl r, I aa k vdr P( ree akt t ) DP( t Ln Poi B y ie L D i r e Itrae, i x nef ) 及Ln 下的SC少AK 类型 c u OK C T 套接口s E [ 7
主要接口函数有 pa_ _ ( pa_efle(, pdsac( cpoe lv ) cpstitr) pa_ th) 分别用于数据包捕获 pn ie , c i p 等, 描述字、指定一个过滤程序、捕获并处理数据包等功能。 在Ehra 源代码文件中,与 l pa 相关的源文件有以 卜 l tee i cp b 几个:
Ke Wod oEhra n t ok fn ie y r s eel e r si ig Fl r r t w nf t
1 概
述
E e a 是目 前一种应用非常广泛的网络分析软件,是一种虚拟的网络分析仪,它试图在局域网上捕 trl he 捉数据报,并且尽可能详细的显示数据报的内容。应用这个软件,网络管理员可以分析网络故障,网络安 全工程师可以检测安全问题,协议开发者可以调试网络协议,用户可以了解网络协议的交互过程。
需要详细说明:
调用WS S rp1 A tt ( au , S C T初始化 E OK
初始化变量 I d
调 e e lv ) 取 用P po n ( a p i e获 se
捕捉句柄
调用pa sbf 设置缓 e ee u' p Q st
冲区大小
调用 wa p c s c _a e) t_r e_ apc t p o s p k( p 将捕获的包转化为wa 格式 t p