基于WinpCap的MFC网络嗅探程序设计报告书Word文档下载推荐.docx

上传人:b****5 文档编号:15783848 上传时间:2022-11-16 格式:DOCX 页数:29 大小:689.65KB
下载 相关 举报
基于WinpCap的MFC网络嗅探程序设计报告书Word文档下载推荐.docx_第1页
第1页 / 共29页
基于WinpCap的MFC网络嗅探程序设计报告书Word文档下载推荐.docx_第2页
第2页 / 共29页
基于WinpCap的MFC网络嗅探程序设计报告书Word文档下载推荐.docx_第3页
第3页 / 共29页
基于WinpCap的MFC网络嗅探程序设计报告书Word文档下载推荐.docx_第4页
第4页 / 共29页
基于WinpCap的MFC网络嗅探程序设计报告书Word文档下载推荐.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

基于WinpCap的MFC网络嗅探程序设计报告书Word文档下载推荐.docx

《基于WinpCap的MFC网络嗅探程序设计报告书Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于WinpCap的MFC网络嗅探程序设计报告书Word文档下载推荐.docx(29页珍藏版)》请在冰豆网上搜索。

基于WinpCap的MFC网络嗅探程序设计报告书Word文档下载推荐.docx

本需求的编写是为了研究基于WinpCap网络嗅探(网络抓包)程序的开发途径和应用方法。

同时它也是进行项目策划、概要设计和详细设计的基础,是维护人员进行内部维护,信息更新,验收和测试的依据,是用户操作说明的指导文档,是开发人员和用户交互的良好界面。

本需求的预计读者为:

软件开发人员、软件测试人员以及验收人员。

1.1.2问题的背景

随着网络技术的飞速发展,加速了全球信息化的进程,各种重要数据在网上的传播日益普遍,使得网络安全问题越来越为人们所关注。

网络嗅探(网络抓包)工具作为一种网络数据监听程序,在网络安全攻防方面扮演了很重要的角色,目前已经有不少网络嗅探(网络抓包)工具,譬如在Windows环境下,最富盛名的工具是Netxray、WireShark(原Ethereal)。

网络嗅探(网络抓包)工具实际上是一把双刃剑,通过使用网络嗅探(网络抓包)工具,可以把网卡设置于混杂模式,并可实现对网络上传输的数据包的捕获与分析,此分析结果可供网络安全分析之用,也可为黑客发动进一步的攻击提供有价值的信息。

而在网络安全方面,目前使用最广泛的TCP/IP协议存在许多安全缺陷,网络嗅探(网络抓包)工具可以有效地探测在网络上传输的数据包信息,通过对这些信息的分析是有助于网络安全维护的。

根据《网络安全技术发展分析》一文中的数据,2007年以来网络监听技术出现了新额重要特征,传统的Sniffer技术是被动地监听网络通信、用户名和口令,而新的Sniffer技术则主动地控制通信数据。

我们通过对网络嗅探(网络抓包)工具的数据包的捕获与分析功能的进一步了解,才能做到知己知彼,有针对性地获取所需要的信息,利用这些信息进行网络安全分析的网络威胁应对。

因此对网络嗅探(网络抓包)技术的研究具有重要的意义。

本程序通过分析网络上常用的抓包软件Ethereal,在了解其功能和原理的基础上,以Vc6.0为开发平台,使用Windows环境下的网络数据包捕获开发库WinPcap,按照软件工程的思想设计了一个网络嗅探(网络抓包)程序。

1.2需求规定

1.2.1用户需求

网络嗅探(网络抓包)时一种利用计算机的网络接口截获其它计算机数据报文的工具。

使用网络嗅探(网络抓包)工具的主要人群是黑客或网络安全技术人员,从攻击的角度,黑客可以使用网络嗅探(网络抓包)程序非法获取网络中传输的大量敏感信息,如账号和口令等,对网路安全极具威胁;

从防守的角度,网络嗅探(网络抓包)技术是居于网络的入侵检测系统的最底层环节,是整个系统的数据来源,为技术人员提供重要的依据。

无论是黑客还是安全人员,他们对抓包技术的利用途径都是一样的,即对网络上传输的数据包进行捕获与分析,获取不要的信息,但是他们的目的是不一样的,前者是专门利用计算机网络搞破坏或恶作剧,而后者是通过对这些信息的分析利用。

维护网络安全与稳定。

因此用户提出了以下要求:

能够捕获网络数据包,并能对数据包进行简单的分析;

精确的设置捕捉规则和灵活的过滤策略,能使用户方便、准确地捕获所需要的信息;

界面友好,操作简单。

1.2.2功能需求

尽管网络嗅探(网络抓包)工具作为网络安全方面最常见的工具被广泛使用,但是它的基本原理其实很简单,就是先把同卡设备设为混杂模式,然后直接接收链路层的数据。

为了实现用户所提出的各种需求,抓包工具必需达到以下功能:

(1)运行于数据链路层,监视网络状态,对数据帧进行捕捉和统计,为优化网络性能、增强系统安全性提供充分有效的依据。

此时的工作网卡处于混杂模式;

(2)能够对网络中捕捉的数据包解码,用于故障分析。

如数据包的编号、长度、硬件地址类型、协议地址类型、MAC地址长度、IP地址长度、操作代码、发送者硬件地址、目标硬件地址、源IP、目的IP等相关信息;

(3)友好的图形化界面,不需要复杂的命令,大部分功能通过鼠标点击就可达到,操作简单、方便;

(4)用户能够自定义过滤规则,使数据包的捕获更加精准和具有灵活性,增强了软件功能以及与用户的交互能力;

1.2.3性能需求

一个程序除了能正常运行并且达到相应的功能外,对程序性能也有严格的要求,性能需求决定了整个系统的性能档次、所采用的技术和设备档次,本程序除了达到常用软件对响应时间以及差错控制的要求外,还提出以下要求:

(1)数据精确性。

捕获到的数据包并不仅仅是单纯的数据信息,而是包含有IP头、TCP头等信息头的最原始的数据信息,这些信息保留了它在网络传输时的原貌,为分析网络信息提供了重要资料。

(2)适应范围。

优秀的抓包工具能够分析几百种协议。

一般情况下,大多数的抓包工具至少能够分析下面的协议:

IP、TCP、UDP、ICMP、ARP、等。

1.3运行环境

本系统运正常行的硬件环境需求如下:

标准X86PC一台;

CPU:

PIII800MHZ及其以上;

内存:

128MB及其以上;

本系统运正常行的软件环境需求如下:

操作系统:

WindowsXP/7;

动态链接库和驱动程序:

WinPcap4_1_2.exe;

2、概要设计

2.1开发环境

开发系统选用Windows7操作系统,并且采用Visualc++6.0(绿色版)编译系统,具体环境是微软基础类库MFC,这个类库便于我们构造基于Windows操作系统的窗口程序。

本系统是一个基于对话框的应用程序,并对该对话框添加了按钮控件、示例编辑框、列表框控件等,使得程序操作简单。

2.2系统结构

2.2.1结构描述

由前面提到的,一个完整的抓包工具必需有数据包捕获及分析、数据存储等基本功能。

2.2.2系统结构图

系统结构图如下:

2.3设计思路

根据前面的网络抓包技术的原理以及利用WinPcap设计程序的一般步骤,本次设计抓包工具的思路如下:

首先获取网络设备,在程序中显示设备名称;

选择需要抓取的数据包类型;

通过在过滤器对话栏的中输入过滤字符串来确定过滤器,默认情况不进行过滤;

然后单击【开始抓包】,程序开始进行数据包的获取;

抓包结束后显示出包得原数据;

程序自动分析所获取的数据包的类型并显示分析结果的文本数据;

2.4程序流程

根据前一节的设计思路,可以相应地得到这个程序的设计流程,通过采用程序的顺序、选择和循环三种基本的控制流程,可以提高程序质量和编程效率,使程序具有良好的可读性、可靠性、可维护性以及良好的结构,有利于后面程序的编写。

开始

结束

3、详细设计与实现

网络数据包抓取技术的关键技术在于监听网络数据流,并将接收到的数据包,经过重组分析,成为用户可见的应用层信息。

本节主要讨论系统核心部分的具体实现,即利用WinPcap开发网络抓包工具,包括了数据包的捕获和分析两大主要部分。

3.1总体设计思路

通过对照前面的设计流程,以及参考了WinPcap的相关函数功能,初步构造了利用WinPcap进行网络数据包的捕获和过滤的方法,其设计步骤如下:

(1)获得适合的网络接口的列表,得到设备的基本信息(如设备名称和设备描述),利用pcap_findalldevs函数实现,该函数不仅能打开本地设备,也可以打开远程设备进行远程的抓包控制;

(2)WinPcap最强大的特点之一就是数据流的过滤引擎。

它提供一种高效的方法来只捕。

过滤数据包是通过pcap_compile()相pcap_setfilter()函数来实现的;

(3)然后打开一个接口并捕捉流量,使用函数pcap_open()来打开一个捕捉设备。

接口打开后,使用pcap_dispatch()或pcap_loop()函数将会开始捕捉数据包,其中,pcap_dispatch()将会在超时后直接返回,pcap_loop()则一定要等到一定数量的数包被处理了以后才会返回。

(4)最后通过pcap_freealldevs()函数来释放接口列表;

3.2数据结构

在分析数据包时需要定义合适的数据结构来帮助我们分析

我们按照TCP/IP中协议的头信息的定义设定了如下的结构体

typedefstruct_ETHeader//14字节的以太头

{

unsignedchardhost[6];

//目的MAC地址destinationmacaddress

unsignedcharshost[6];

//源MAC地址sourcemacaddress

unsignedshorttype;

//下层协议类型,如IP(ETHERTYPE_IP)、ARP(ETHERTYPE_ARP)等

}ETHeader,*PETHeader;

//ARP协议opcodes

#defineARPOP_REQUEST1//ARP请求

#defineARPOP_REPLY2//ARP响应

typedefstruct_ARPHeader//28字节的ARP头

unsignedshorthrd;

//硬件地址空间,以太网中为ARPHRD_ETHER,0x0001

unsignedshorteth_type;

//以太网类型,ETHERTYPE_IP,0x0800

unsignedcharmaclen;

//MAC地址的长度,为6

unsignedchariplen;

//IP地址的长度,为4

unsignedshortopcode;

//操作代码,ARPOP_REQUEST为请求(0x0001),ARPOP_REPLY为响应(0x0002)

unsignedcharsmac[6];

//源MAC地址

unsignedlongsaddr;

//源IP地址

unsignedchardmac[6];

//目的MAC地址

unsignedlongdaddr;

//目的IP地址

}ARPHeader,*PARPHeader;

//协议,IP首部中的ipProtocol字段,标明上层协议

#definePROTO_ICMP1

#definePROTO_IGMP2

#definePROTO_TCP6

#definePROTO_UDP17

typedefstruct_IPHeader//20字节的IP头

unsignedchariphVerLen;

//版本号和头长度(各占4位)

unsignedcharipTOS;

//服务类型

unsignedshortipLength;

//封包总长度,即整个IP报的长度

unsignedshortipID;

//封包标识,惟一标识发送的每一个数据报

unsignedshortipFlags;

//标志

unsignedcharipTTL;

//生存时间,就是TTL

unsignedcharipProtocol;

//协议,可能是TCP、UDP、ICMP等

unsignedshortipChecksum;

//校验和

unsignedlongipSource;

//源IP地址

unsignedlongipDestination;

//目标IP地

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1