版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于wireshark的协议解析器开发研究和实现摘要:在分析wireshark体系结构和功能的基础上,研究了 wireshark环境下协议解析器开发的方法和流程,以一个简单的私有协议 amin进行了验证性开发,实验结果说明wireshark的开放性架构有效的满 足了新解析插件添加和对新协议的分析。对业界非标准新协议的拓展研究 有借鉴意义。关键词:wireshark;协议解析;插件开发;网络协议中图分类号:tp393文献标志码:a文章编号:1006-8228 (2015) 06-13-03abs trac t: the wireshark,s fun cti on, arch it ecture
2、, compone nts are analyzed , and the method and process of protocol parser development is al so studi ed. at the same time, a validation of development has been done on a simple protocol amin experimental results show that the open architecture of wireshark is effective to a newly added protocol par
3、ser plug-ins and to new protocol parsing, this paper provided a reference for the expanded research of non-standard protocol.key words: wireshark; protocol parsing; plug-in development; network protocol0引言网络协议分析软件的功能是撷取网络数据包的协议头及相关负载信 息,通过分析,尽可能为用户显示出最为详细的网络协议资料,从而了解 信息及相关数据包在产生和传输屮的行为。由于网络协议层出不穷,一个
4、 好的网络协议分析软件必须既能对标准协议进行有效分析,乂能提供接口 允许用户添加新的协议解析方法lo wireshark (前称ethereal)是目前 应用最广泛的网络协议分析软件之一,由密苏里大学计算机专业的gerald combs出于项fl需要而开发,于1998年以gpl开源许可证发布,wireshark 的使用者可以免费取得该软件和其源代码,并根据自身协议解析的需求对 其进行定制和扩展。本文在分析wireshark的系统结构的基础上,研究了 wire shark的开 发环境,方法和步骤,并进行了新协议解析插件开发验证,为新协议的拓 展研究打下基础。1 wireshark体系结构分析wi
5、re shark 的结构主要由 capture core> win-/l i bpcap > wi retap > dissector几个核心模块构成。综合调度模块capture core调用底层抓包 工具win-/libpcap获得网络数据,并调用磁盘读写包模块wiretap写入 本地磁盘。因为数据是二进制文件,所以必须调用解析器模块dissector 对二进制数据进行协议解读,并把协议部分的各个字段信息进行详细地呈 现。解析器dissector的核心工作就在于数据包详细内容窗口部分的树形 结构的维护,并结合过滤器、数据包列表等部分,进行筛选与信息的呈现。 当用户需要对新协
6、议进行开发,实质上就是对dissector进行拓展,dissector可以是内置形式的(bu订d-in ),也可以是插件形式的(plug-in),所以,基于wireshark的协议解析器开发有两种模式,即: build-in plug-in2o其系统结构如图1所示。2 wireshark开发环境设置在windows环境下进行wireshark开发需要的工具有:(1) visual c+ 2005 express edition (c 编译器);(2) cygwin (一个 win32 ±的仿 unix 平台);python (种面向对象的高级脚本语言);(4) subvertion
7、client (tortoisesvn)(可选);(5) wireshark依赖的开发包。安装步骤及开发环境设置如下3 o(1) 安装vs2005/vs2003等c语言编译器,同时必须确认下载并安装 本操作系统的sdko(2) 安装cygwin,在wireshark插件开发屮需要用到的安装包冇: archive/unzip、devel/bison、devel/fl ex、 interpreters/perl、 utils/patch> web/wget,在” select package页需要改变下载选项, 将以上安装包选中安装。 安装python,版本符合wireshark源代码包中的
8、config, nmake文 件中的python_ver中定义的版本(例如python_ver二27 ,则选择 python-2. 7. *的版本)。(4)安装subvertion client,可以下载使用tortoisesvn,安装后重 启,浏览文件夹时右键会获取源代码树,方便程序开发。(5)编译 wiresharko 使用 svn 客户端 tortoisesvn 将 wire shark 源代 码下载到木地磁盘,修改源码的config, nmake文件来指定对应的工具以 及相关信息,主要做以下几项修改:wireshark_target_platform:指定编译目标平台;verston.
9、extra:指定自定义编译个人版木信息,字符串形式。wireshark_libs:依赖库的路径,依赖库可以通过makefile文件口动获 取。cygwin 的安装路径:cygwin_path=c: cygwin binpython 的路径 python二c: /python25/python. exe设置 nsis 打包工具的路 makensis二d: program files nsis makensis exe编译输出文件路径 install2_dir=e: mycode wireshark wireshark-gtk2设置命令行坏境:在命令行屮直接运彳亍nmake -f makefile
10、 verify tools如果所有必需安装的软件包都安装好了,则会出现如图2所示的界面。(6) 编译 wireshark 需要的依赖库文件:nmake -f makefile, nmake setup(7) 清理无用文件:nmake -f makefile, nmake distclean(8) 编译 nmake -f makefile, nmake al 13 wireshark解析协议的开发3. 1 w让eshark协议解析原理基于tcp/ip的协议数据包在发送端是从上往下进行层层封装,接收 者对协议的解析需从下往上,首先对数据帧的协议分析,脱去协议头,然 后将数据交由网络层分析,网络层协
11、议识别后脱去网络层协议头,将里面 的数据交给传输层分析,这样一直进行下去,直到应用层。为使协议和协 议间层次关系明晰,从而对数据流中各层次的协议能够逐层处理, wireshark系统采用了图3所示协议树的方式。wireshatk采用协议的特 征字來识别拥有同样父协议的兄弟节点协议。每个协议注册自己的特征 字,这些特征字给子节点协议提供可以互相区分开来的标识。在wireshark 屮注册一个协议解析器首先需要指出它的父协议是什么,另外还需指出自 己区别于父节点下所有兄弟节点协议的特征字。山于采用了 i办议树加特征字的设计,wireshark在协议解析上具备了 很强的扩展性,增加一个协议只需要将该
12、协议相关的解析函数挂到协议树 上相应的节点即可4。3. 2插件型解析器开发wireshark默认支持1170多种业界通用网络协议,在wireshark主菜 单u internals>support protocols ”可查看当前支持的所有协议。当 wireshark需要解析非业界通用协议时,就必须使用内置件形式或插件技 术进行协议解析的拓展,内置件形式需要了解wireshark的组织构建,了 解源文件的存放位置和编译运行方式等,难度较大。而插件技术是通过提 供通用接口调用插件的方式开发解析协议,在指定源代码目录plugins 下增加编译好的库文件(*dll)o运用插件技术可以开发出伸缩
13、性良好、 便于维护的应用程序,相对來说简单易行。本文主要分析插件型解析器开 发技术。 协议解析器的核心逻辑流程包括以下部分5。(1)注册协议:注册协议的名称,过滤字符串及其他相关所需的结构。(2)提供协议解析函数:这是关键部分,此函数由wireshark核心调 用,处理协议的解析及显示工作。wireshark 启 动 时 会 加 载 所 有 $installdir/plugins/$buildversion/*. dll,并且调用每个 dll 导出的 两个函数 proto_reg_handoff_xxx 和 proto_register_xxx0 插件在这两个 函数里完成 解析器dissect
14、or的注册和初始化工作,其屮plugin_registe 注册插件,plugin_reg_handoff注册协议。插件型解析器开发的具体过程如下。第一步,在wireshark的plugins目录下创建一个目录,一般以需要 解析的协议名作为冃录名。5结束语随着网络技术的迅速发展。网络协议的种类也越来越多,对新协议的 研究需要一个可扩展的协议分析器进行协议解析,而wireshark以其开源 性和良好的二次开发架构满足了该需求。本文在分析wireshark体系结构 的基础上,研究了 wireshark环境下协议解析器开发的方法和流程,同时 以一个简单的私冇协议amin进彳亍了验证性开发,实验结果说明wireshark 的开放性架构有效的满足了新解析插件添加和对新协议的解析。这将为网 络设计和研究中的新协议拓展带来很大的便利。参考文献:1蒋波,李方军,郝军数据包的截获与网络协议分析j重庆三峡学院学报,2006.22 (3): 26-282 wireshark 技术文档 4. 0. 1 eb/ol. http: /www. winpcap. org, 2014-06-033 罗青林,徐克付,臧文羽,刘金刚.1 wireshark环境下的网 络协议解析与验证方法j计算机工程与设计,201
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025文山州工商信息管理学校工作人员招聘考试试题
- 2025昆明市晋宁区安全管理学校工作人员招聘考试试题
- 2025敦煌艺术旅游中等专业学校工作人员招聘考试试题
- 市政工程倒虹井施工技术方案
- 2026年智能农业技术报告及未来五至十年行业发展报告
- 初中化学电解水实验微型化装置的废弃物处理与环保再生课题报告教学研究课题报告
- 2026年无人驾驶物流运输报告及未来五至十年配送效率报告
- 2026年自动驾驶安全标准报告及未来五至十年智能交通报告
- 2026年生物基材料在包装行业的创新应用报告
- 26年基础护理服务老年友好机构建设课件
- 2026年人教版(新教材)小学信息技术三年级全一册第二学期(第5-8单元)期末质量检测卷及答案(二套)
- 2026内蒙古赤峰市人大常委会办公室所属事业单位竞争性比选人员3人备考题库及一套完整答案详解
- 四川-(2025年)高考四川卷历史高考真题(含答案)
- 《金融大数据分析》试题及答案
- 2026年《民法典》应知应会知识竞赛测试题题库及答案
- JG/T 368-2012钢筋桁架楼承板
- 医院医疗设备管理及维修
- 混凝土搅拌站消防培训课件
- 土地制度与政策2016.4
- 生育服务证办理承诺书
- 部队安全员职责
评论
0/150
提交评论