精选文章
发布时间:周璐璐
  |  
字数:2366
  |  
阅读量:

摘 要:随着网络技术的发展及其应用的普及,互联网上的信息资源日渐繁多,复杂的网络环境使得信息存储、处理的风险大大增加,同时信息传送也产生了新的问题。本设计IP网络数据嗅探器是软件网络数据嗅探器,它可以获得计算机的网卡列表供用户选中要用于监听工作的网卡。它还可以将计算机网卡设置为混杂模式,从而监听到连接端口上出现的一切数据。

关键字:嗅探器;协议;数据包;Winpcap;MFC;类

随着网络技术的迅速发展,人们对网络安全的要求越来越高,因此捕获并分析数据包的软件应用日渐广泛。IP网络数据嗅探器是一款用来捕获和分析以太网数据包的软件。它可用于维护网络安全,还可以获得计算机的网卡列表供用户选中要用于监听工作的网卡。它会根据用户自定义的过滤规则捕获数据包。通过分析数据包帧结构,它可以获取该数据包的各层协议内容。它可以将分析结果以及整个数据包在软件主界面中显示,并把数据包写入pcap文件、导出到用户所选路径。

下面给读者介绍IP网络数据嗅探器的总体设计和捕包过程。

1 系统功能设计

本设计的基本功能是捕获并分析数据包,具体包括获取网卡信息、打开网卡;用户自定义过滤规则;捕获数据包;通过分析数据包在网络中第二、三、四层所用协议,获得其源目的MAC地址、IP地址以及端口号,将上述内容以列表控件的报表格式显示在软件主界面中;以树控件的形式将数据帧在数据链路层、网络层和传输层使用的协议数据报各字段信息显示在软件主界面中;以编辑框的形式将数据包内容显示在软件主界面中;最后还将数据导出到pcap格式的文件中。

网卡的配置、过滤器以及数据包的捕获功能的实现主要是通过调用Winpcap提供的API函数完成的,数据解析、显示功能的实现主要是通过自定义函数完成,文件导出部分功能的实现主要通过Windows Shell编程中的函数完成。

2 系统的架构设计

IP网络数据嗅探器的总体设计可以由三个模块构成,自底向上分别是网络嗅探器设置模块、数据包捕获模块和数据处理模块。

网络嗅探器设置模块主要是通过调用Winpcap提供的部分API函数,实现获取网卡列表信息、设置并编译过滤器、将网卡置为混杂模式三个步骤;

数据包捕获模块创建了一个新的线程,利用pcap_loop函数循环读取数据包,直到用户单击操作菜单的“停止”子菜单后就会跳出循环,同时调用pcap_close函数关闭捕获模块。该模块在执行捕包操作时,网卡已经绑定了过滤器,因此网卡只会捕获符合条件的数据包。

数据处理模块用于处理捕获到的数据包。该模块首先通过使用new 语句动态分配内存空间用来存放捕获数据头部和数据信息,再通过自定义数组结构将以上数据添加到数组结构中以供处理数据时使用。

3 基于Winpcap的捕包过程

利用 Winpcap 捕获、分析网络数据时,主要是调用packet.dll和wpcap.dll库中提供的一些函数。下面是基于Winpcap 的网络数据包捕获流程和对部分Winpcap 库函数的介绍。各函数之间参数传递的具体情况如图2所示。

3.1 获取网卡列表

利用Winpcap 捕获数据包时要先获取本地网卡列表,Winpcap提供pcap_findalldevs和pcap_findalldev_ex函数实现以上功能,这两个API 函数都返回一个pcap_if 结构的列表,列表中含有全面的网卡信息,例如网卡设备名、网卡型号以及网卡地址。对于这两个函数,后者是前者的衍生,它不仅可获取本地网卡列表,还可作用于远程计算机,但在pcap.h中对它没有声明,所以调用容易出现错误,本设计选用pcap_findalldevs来获取网卡列表。

3.2 设置并编译过滤器

Winpcap提供pcap_compile和pcap_setfilter函数来实现过滤数据的功能,其中pcap_compile的作用是将用户制定的过滤表达式编译到过滤程序中,pcap_setfilter的作用是把过滤器绑定到抓包过程中,即为抓包过程设置过滤器。若不采用过滤机制时,该过程将省略掉,软件抓取经过的所有数据包。

3.3 网卡设置为混杂模式

Winpcap提供pcap_open和pcap_open_live函数设置网卡工作模式,函数返回用于捕获数据包的网卡描述字,对该网卡的任何操作都要基于这个描述字。函数的promisc参数是1则表示把网卡设置设为混杂模式。本设计调用的是pcap_open_live函数。

3.4 捕获数据包

网卡被打开后,就可以调用pcap_next、pacp_next_ex或pcap_loop函数捕获数据包。pcap_next和pacp_next_ex函数捕获一个可用数据包就返回,pcap_loop函数可以循环捕包捕获多个数据包,直到出现错误为止。本设计调用pcap_loop函数实现循环捕包。

3.5 处理数据包

相关文档:
简述一种新型的机械自动泡茶杯
基于云服务的图书馆信息检索服务探微
由纸媒到网媒:英国《独立报》的转型之路
浅谈高中排列与组合的有效教学
浅析文书档案管理工作的创新
关于当代大学生孝道教育的现状研究
探讨如何提高高中政治课程的教学质量