信息技术 ・179・ 基于windows平台 的网络嗅探器系统的设计与实现 于鹏飞孙春静薄红岩彭斌 (吉林建筑大学电气与计算机学院,吉林长春130021) 摘要:网络嗅探和分析技术是很多网络安全软件实现的基础,也是设计网络分析软件的基础,现存在的一些技术如防火墙、协议分 析等软件的实现的前提都是以数据包的嗅探捕获,所以研究相关的数据包嗅探和分析技术对保证网络的安全运行是十分必要的。该项目 实现了数据包嗅探分析器。程序中网络监听的目标TCPBP协议中的ARP、IP、TCP、UDP四种协议,基于Windows操作系统为平台,在数 据链路层捕获原始数据包,并从中提取出网络通信协议及数据包的数据。 关键词:数据包;网络监听;嗅探捕获;网络通信协议 随着计算机技术的迅速发展,网络的应用的迅速普及,网络已日益 成为生活中必不可少的一部分。由于计算机网络具有连接形式多样性、 for(int i=0;i<m_PacketMonitors.Length;i++】{ 互联性、开放性、等特点,而且多数都采用了TCP/IP协议,而TCP/IP在 PacketMonitors0]=new PacketMonitor(hosts[i ̄ 设计上要求运行效率,而且要建立在互相信任的基础上,其本身就是造 成网络不安全的主要因素,因此这也是TCP ̄P协议在设计上的缺陷, ) Packets=new ArrayList0; 从而导致针对网络系统的攻击事件频繁发生,当我们在享受网络带来的 } 方便、快捷、的同时,也应该认识到网络安全所面临的严峻考验。与此同 Private void PacketMonitormFormClosing(object sender,CancelEventArgs e)( 时,网络的安全胜与可靠性日益受到人们越来越高的重视,安全l生指的 OnToolBarClick(this,new ToolBarButtonCliekEventArgs(StopButton)); 1 是网络上的信息不被更改、泄露、和破坏。网络数据包捕获、监听与分析 publicvoidOnToolBarClick(objectsender,ToolBarButtonClickEventArgs 曲{ 技术是网络安全维护的一个基础技术,同时也是网络入侵的核心手段。 if(e.Button==StopButton)f//停止监听所有的端口 for(int i=0;i<m_PaeketMonitors.Length;i++){ 所以研究有关数据包捕获和分析技术对保证网络的健康、安全运行是 非常意义的。 ed=false; 1技术背景 StatusBar.Text=”停止嗅探”+string.Forrlfl卅 数据包总量 1.1嗅探原理。嗅探是一种常用的收集有用数据的方法,嗅探器是 f0l字节数: 利用计算机的网络接口截获目的地为其他计算机的数据报文的一种工 …1 bytes”,m_Packets.Count,m_PacketsSize); )else if(eButton==StartButton){//开始监听所有的端口 具。嗅探器的工作原理总共可以分为三大类:a基于中间人攻击的嗅探 for(int i=0;i<m_PaeketMonitors.Length;i++】{ 原理;b.基于ARP欺骗的网络嗅探原理;c.基于网卡混杂模式的嗅探原 ry f 理:网卡一般可以分为四种接收模式: 直接方式:在这种模式下,只有 PacketMonitors[i].Start0; )catch(Exception ex)( 目的网卡才能接收该数据;b.混杂模式:在这种模式下的网卡能够接收 MessageBox.Show(this,”界面出现—个错误”+ 切通过它的数据.c.广播方式:该模式下的网卡能够接收网络中的广 alis.org PacketMonitor ̄i].IRToStirng0+” n ’+ex.Message+’T’, ”MentPacket Monitor”,MessageBoxButton ̄OI<,MessageBoxlcon.Error); 播信息;d.组播方式:设置在该模式下的网卡能够接收组播数据。 】 1.2捕获机制。网络数据包捕获技术是从网络上捕获特定的或所有 的网络数据包信息,供其他网络 安全系统使用。不同的网络有不同的 J 捕获技术,不同的操作系统其捕获机理也不尽不同。操作系统提供的捕 StatusBar.Text:”检测所有端口”; 获机制主要有以下三种:a.SOCK_PACKET类型套接口;b.数据链路提 1 else if(e.Button==ClearButton)(//清除列表 PacketListItems.Clear0; 供者接口((Data link Provider Interface,DLPI));c伯克利数据包过滤 m_nl_m_一m_器(Berkeley Packet Fiher,BPF)。 BFP主要由两部分组成:网络转发部分和数据包过滤部分。 在实际应用中,实现网络数据包捕获技术的代表是Libpcap。它是 个专业的跨平台的网络数据包捕获开发包。使用Libpcap可以很轻 松的实现网络数据包的捕获功能,它的捕获机制就是BPF捕获机制。在 windows平台下有与Libpcap兼容的WinPcap开发 包,它是专门针 对 indows平台而开发的,本次论文的程序的开发就是利用WinPcap 一Packets.Clear0; StatusBar.Text=”清空列表”; 1 else if(e.Button:=AboutButton){ AboutForm af=new AboutForm ̄ a ̄ShowDialog(this),; ) ml (1)最低配置: P3 1.0G CPU 256 MB RAM Internet Explorer 5.5 or higher 库函数实现的。 2程序流程 通过采用程序的顺序、循环和选择三种基本的控制流程,可以提高 程序质量和编程效率,使程序具有良好的可读性;可维护性、可靠性以 及良好的结构,有利于后面程序的编写。 3代码实现 ”.(2)支持的操作系统 Windows 2000(SP 4 or later) MessageBoxButtons ̄OK,//网络嗅探器 MessageBoxlcon.Errod; ) ) private void Initialize0 f //取得计算机的所有端口,并以列表的形式显示出来 IPAddress1]hosts:Dns.Resolve(Dns.GetHostName0).AddressList; if(host ̄Length=:0l computer does not have l'ton—loopback interfaces installed!’ for(int i=0;i<hosts.Length;i+ { HostsMenu.Menultem, ̄Add(hosts[i].ToStrin酊’new E 编译通过后,对本系统进行测试。 测试主机的硬件和软件环境如下: 操作系统:Windows VistaTM Home Basic Service Pack 1 处理器:IntelOt)CoreO'M)2 Duo CPU T6670@2.20GHz 2.20GHz  ̄-(RAM):2.0OGB 系统类型:32位操作系统 开发工具:VC++6.0 4结论 随着网络技术的迅猛发展,网络安全将被人们越来越重视,网络嗅 探技术作为网络安全攻防中最基础的技术,网络嗅探工具的发展将向 着集成化和易用型发展这两个方向发展,我相信这也是绝大部分软件 的发展趋势。 注:大创项目,项目编号:85700831。 作者简介:于鹏飞(1995一),男,吉林省长春市人,学生,吉林建筑大学。