欢迎来到天天文库
浏览记录
ID:46678865
大小:54.50 KB
页数:7页
时间:2019-11-26
《基于Wireshark的协议解析器开发研究和实现》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、基于Wireshark的协议解析器开发研究和实现摘要:在分析Wireshark体系结构和功能的基础上,研究了Wireshark环境下协议解析器开发的方法和流程,以一个简单的私有协议amin进行了验证性开发,实验结果说明Wireshark的开放性架构有效的满足了新解析插件添加和对新协议的分析。对业界非标准新协议的拓展研究有借鉴意义。关键词:Wireshark;协议解析;插件开发;网络协议中图分类号:TP393文献标志码:A文章编号:1006-8228(2015)06-13-03Abstract:TheW
2、ireshark,sfunction,architecture,componentsareanalyzed,andthemethodandprocessofprotocolparserdevelopmentisalsostudied.Atthesametime,avalidationofdevelopmenthasbeendoneonasimpleprotocolAmin・ExperimentalresultsshowthattheopenarchitectureofWiresharkiseffect
3、ivetoanewlyaddedprotocolparserplug-insandtonewprotocolparsing,thispaperprovidedareferencefortheexpandedresearchofnon-standardprotocol.Keywords:Wireshark;protocolparsing;plug-indevelopment;networkprotocol0引言网络协议分析软件的功能是撷取网络数据包的协议头及相关负载信息,通过分析,尽可能为用户显示出最为
4、详细的网络协议资料,从而了解信息及相关数据包在产生和传输屮的行为。由于网络协议层出不穷,一个好的网络协议分析软件必须既能对标准协议进行有效分析,乂能提供接口允许用户添加新的协议解析方法[l]oWireshark(前称Ethereal)是目前应用最广泛的网络协议分析软件之一,由密苏里大学计算机专业的Geraldcombs出于项Fl需要而开发,于1998年以GPL开源许可证发布,Wireshark的使用者可以免费取得该软件和其源代码,并根据自身协议解析的需求对其进行定制和扩展。本文在分析Wireshark
5、的系统结构的基础上,研究了Wireshark的开发环境,方法和步骤,并进行了新协议解析插件开发验证,为新协议的拓展研究打下基础。1Wireshark体系结构分析Wireshark的结构主要由CaptureCore>win-/libpcap>WireTap>Dissector几个核心模块构成。综合调度模块CaptureCore调用底层抓包工具win-/libpcap获得网络数据,并调用磁盘读写包模块WireTap写入本地磁盘。因为数据是二进制文件,所以必须调用解析器模块Dissector对二进制数据进行
6、协议解读,并把协议部分的各个字段信息进行详细地呈现。解析器Dissector的核心工作就在于数据包详细内容窗口部分的树形结构的维护,并结合过滤器、数据包列表等部分,进行筛选与信息的呈现。当用户需要对新协议进行开发,实质上就是对Dissector进行拓展,Dissector可以是内置形式的(Bu订d-in),也可以是插件形式的(Plug-in),所以,基于Wireshark的协议解析器开发有两种模式,即:Build-in^Plug-in[2]o其系统结构如图1所示。1Wireshark开发环境设置在Wi
7、ndows环境下进行Wireshark开发需要的工具有:(1)VisualC++2005ExpressEdition(C编译器);(2)Cygwin(一个Win32±的仿Unix平台);⑶Python(—种面向对象的高级脚本语言);(4)SubvertionClient(TortoiseSVN)(可选);(5)Wireshark依赖的开发包。安装步骤及开发环境设置如下[3]o(1)安装VS2005/VS2003等C语言编译器,同时必须确认下载并安装本操作系统的SDKo(2)安装Cygwin,在Wire
8、shark插件开发屮需要用到的安装包冇:Archive/unzip、Devel/bison、Devel/flex、Interpreters/perl、Utils/patch>Web/wget,在”SelectPackage页需要改变下载选项,将以上安装包选中安装。⑶安装Python,版本符合Wireshark源代码包中的config,nmake文件中的PYTHON_VER中定义的版本(例如PYTHON_VER二27,则选择python-2.7.*的版本)
此文档下载收益归作者所有