宝玛科技网
您的当前位置:首页基于Winpcap的网络嗅探器设计与实现

基于Winpcap的网络嗅探器设计与实现

来源:宝玛科技网


基于Winpcap的网络嗅探器设计与实现

设计题目:基于现

院系名称: 班 级: 小组成员:秦向红 指导教师:

网络安全 课程设计

Winpcap的网络嗅探器设计与实

贾 博

孙飞显、夏冰

基于Winpcap的网络嗅探器设计与实现

2015 年1月

基于Winpcap的网络嗅探器设计与实现

摘 要

当前,网络也逐渐成为人们生活和学习中不可缺少的部分,与此同时,网络信息安全性也越来越受到人们的关注。为了有效地实现网络传输中数据包的检测、捕获和分析,较为方便地监控网络信息流量并保证信息的安全可靠,产生了网络嗅探器。基于Winpcap开发平台,使用Visual C++作为开发工具,设计并开发网络嗅探器。设计实现IP、TCP、UDP数据包捕获和分析,以有效地对网络信息的安全进行监测、捕获和分析 。同时分析了网络嗅探器的基本工作原理,并阐述了应用捕获数据包流,根据Winpcap关键功能给出了其具体实现。结果表明,该网络嗅探器结构简单,捕获数据快速,对网络安全管理具有重要意义。

关键词:Winpcap、MFC、网络嗅探器、数据包

基于Winpcap的网络嗅探器设计与实现

Abstract

At present, the network has gradually become an indispensable part in people life and learning, at the same time, network information security has been paid more and more attention. In order to achieve the capture and analysis of detection, data packet in the transmission network, more convenient monitoring network information flow and ensure the safety and reliability of the information, produced a network sniffer. Based on the Winpcap development platform, using Visual C++ as the development tool, the design and development of network sniffer. Design and implementation of IP, TCP, UDP data packet capture and analysis, monitoring, capture and analysis in order to effectively on the security of network information. At the same time, analyzes the principle of network sniffer, and expounds the application of capturing packet stream, according to Winpcap key function gives the concrete realization. The results show that, the network sniffer has the advantages of simple structure, fast capture data, has the vital significance to the network security management.

Keywords: Winpcap, MFC, network sniffer, packet

基于Winpcap的网络嗅探器设计与实现

目 录

第1章 绪 论 ....................................................................................................... 0

1.1 设计背景 ........................................................................................... 0 1.2 国内外研究状况 ............................................................................... 1 1.3 研究意义 ........................................................................................... 2

第2章 需求分析 ................................................................................................. 3

2.1用户需求 ............................................................................................ 3 2.2 功能需求 ........................................................................................... 4 2.3 性能需求 ........................................................................................... 4

第3章 Winpcap及相关协议介绍 ..................................................................... 5

3.1 Winpcap的组成结构 ........................................................................ 5 3.2 Winpcap简介 .................................................................................... 7 3.3 以太网简介 ....................................................................................... 8

3.3.1 网际协议IP ...................................................................... 8 3.3.2 用户数据报协议UDP ..................................................... 8 3.3.3 传输控制协议TCP .......................................................... 9

第4章 程序设计与实现 ..................................................................................... 9

4.1 程序运行环境 ................................................................................... 9 4.2 程序设计 ......................................................................................... 10

4.2.1 程序设计流程图 ............................................................. 10

4.2.2 程序具体设计 ...................................................................... 10

基于Winpcap的网络嗅探器设计与实现

第5章 系统测试 ............................................................................................... 15 第6章 设计总结与展望 ................................................................................... 18

6.1 总结 ................................................................................................. 18 6.2 展望 ................................................................................................. 19

参考文献 ............................................................................................................. 20 致 谢 ................................................................................................................. 21

基于Winpcap的网络嗅探器设计与实现

第1章 绪 论

1.1 设计背景

当前,网络技术发展突飞猛进,网络已经渗透到生产、生活学习的各个方面, 并且,人们开始越来越依赖网络技术,计算机网络具有以下特性:形式多样性, 网络开放性,终端不均匀性,网络互联性等。于是,网络特别容易受到黑客等不 法分子的攻击。总体上说,网络安全所要研究的领域包括网络的中数据信息的完整性,保密性,真实性等多个方面的内容。可见网络安全所涉及的不仅仅是技术方面的内容,还有网络管理相关的问题。两者之间是密切相关的,技术方面可能强调如何有效地防御黑客以避免非法的外部攻击,而在管理方面则需要更加注重内部人员管理的因素。所以,如何较好地保护计算机中的重要数据信息不受 不法分子的侵害,保护用户的计算机系统是当前网络安全方向的研究的重要问题 。

通常,对网络中流通的数据特别感兴趣的通常有两类人,一类就是网络管理员,另外一类就是网络黑客,他们不断地对网络中的数据进行检测,以保证实时地跟踪网络数据。他们存在一个共同点,就是都要用到一个好的数据包监控软件。如黑客常常用数据包监控软件检测互联网,监测网络信息的内容,并对一些敏感信息作出分析,如财经交易等活动中出现的密码,用户名等内容。网络管理员则用该数据包软件检测网络流量,查找网络中的漏洞,发现故障并做出解决等。

所以,学习网络中数据检测和数据分析过程,不仅有助于网络管理员排除网 络中的漏洞和故障,主要是能有效地认识网络攻击的原理,常采用的技术,这样 就可以有针对性的破坏网络黑客的侵入和对资料的窃取。可见,网络探测器可以 检测网路的流量,实现网络数据的检测和捕获,已经逐渐成为网络分析过程中的 重要工具,对于维护网络安全和网络信息管理有着重要的意义。

第 0 页

基于Winpcap的网络嗅探器设计与实现

1.2 国内外研究状况

基于网络协议分析和网络数据捕获的技术,从广义上来讲,通常被叫作协议分析仪(ProtocofAnalyzer)。这样定义的原因在于我们常常将一些纯软件的,并且更侧重于捕获网络数据和进行协议分析的系统叫做嗅探器(Sniffer)。而在实际用中,基于硬件或者软硬件结合的网络数据捕获和分析系统我们称之为协议分 析仪。当然,我们并不是在所有的场合都对两者之间的概念进行区分,因为他们 在功能上都能完成类似的工作。举例子来说,一些网络管理软件及一些网络协议 分析仪都使用了嗅探器技术。

目前,已经存在了许多纯软件的网络嗅探器,如:Linuxsniffer、Dsniff、Tcpdump 等,其中,不乏一些专门用于捕获用户名字和用户密码的软件,如 insniffer、 winsniffer。于是, 我们知道,网络嗅探技术就是一把双刃剑,在被网络管理员熟练使用的同时也会被不法外部黑客利用,既可以作为一种诊断网络故障,排除网络存在问题的工具,也为不法分子提供了窃取信息的工具。

大多数的纯软件协议分析仪都是采用 pc 机上的网卡来辅助实现的,即该过 程可以描述为:pc 网卡+协议分析仪。该软件实现的主要功能就是数据的捕获, 信息编码,信息分析处理。使用该软件可以实现网络流量的捕获,并作出相应的 模拟。并且,网络协议分析仪还可以产生大量的网络数据包,以此来测试网络的 负载能力。当前,已经存在了几款较典型的协议分析仪,如:HP 公司的Intemet Advisor(网络专家系统)、WG 公司的Domino 系列协议分析仪,相类似的还包括 Sniffer Portable 协议分析工具等。但是无论是从针对协议的解码能力,还是从数 据分析的实时性角度来讲,该协议的数据分析处理能力、数据包产生能力等方面 都与采用硬件实现的协议分析仪存在着较大的差距。一种典型的硬件协议分析仪 式通过专用的数据采集硬件实现网络数据的获取,采用专门的采集箱完成一些全 线速捕获和实时性更好的网络数据操作中。

还有一些软件粘在应用层的角度对网络的性能进行测试,该类软件通常使用 一些基准的流量对网络数据进行分析,是比网络协议分析仪更高层次的测试工 具。代表软件是Chariot,该软件是由Ganymede software 公司开发的,还有一些 别的软件在当前也是挺流行的,比如用于网络规划验证的模拟环境,过

第 1 页

基于Winpcap的网络嗅探器设计与实现

外已经有 一些部门对他们自己的网络协议和它们的组合构建较大的网络系统来模拟,虽然 执行的效果很好,但是价格却很昂贵 。

从传统的观念上讲,网络维护人员常常需要一种功能强大的集各种网络技术 于一体的测试软件。所以,相对典型的协议分析仪常加入网络管理,自动网络信 息搜索,智能专家等功能,并且通常要具有一定的移动性能。当前网络分析和测 试的发展趋势是具有综合性能的协议分析仪或者网络分析仪,它们在现场分析, 故障诊断,网络数据维护等方面常常发挥着至关重要的作用,像Fluke 的

Opt View INA 手持综合功能协议分析仪就是一个典型的例子。

1.3 研究意义

计算机网络技术的飞速发展,极大的改变了人们传统的生活和工作模式,越来越多的社会经济活动开始依赖网络来完成,可以说计算机网络的发展已经成为现代社会进步的一个重要标志。但与此同时,计算机犯罪、黑客攻击、病毒入侵等恶性事件也频频发生。因此,信息安全已越来越受到世界各国的重视。嗅探器作为一种网络通讯程序,是通过对网卡的编程来实现网络通讯的,对网卡的编程是使用通常的套接字(socket)方式来进行。但是,通常的套接字程序只能响应与自己硬件地址相匹配的或是以广播形式发出的数据帧,对于其他形式的数据帧比如已到达网络接口但却不是发给此地址的数据帧,网络接口在验证投递地址并非自身地址之后将不引起响应,也就是说应用程序无法收取到达的数据包。而网络嗅探器的目的恰恰在于从网卡接收所有经过它的数据包,这些数据包即可以是发给它的也可以是发往别处的。显然,要达到此目的就不能再让网卡按通常的正常模式工作,而必须将其设置为混杂模式。

嗅探器是一柄双刃剑,具有正反两个方面的作用。作为正面用途,嗅探器主要分析网络流量,作为发现和修补网络故障的重要手段。例如,当网络某个部分运行出现异常,报文发送速度下降时,网络管理员无法确切找出问题的关键所在时,嗅探器即可做出精确的判断。此外,网络管理员还可以利用嗅探器诊断出网络内大量不可见的模糊问题,比如,哪个网络协议传输了多少流量,

第 2 页

基于Winpcap的网络嗅探器设计与实现

占主要通讯协议的主机,大多数通讯的目的地址,报文发送的时间和主机间报文传送的时间间隔等。另一方面,嗅探器也可以被别有用心的人用于非法行为。被嗅探器所截取的数据经过处理可以向用户还原显示数据包中所封装的信息,该信息包括用户标识符和口令以及机密的或者专用的信息,用于危害邻居网络的安全或获取更高级别的访问权限。

本次课程设计通过基于Winpcap的网络嗅探器设计与实现,网络嗅探器对网络上传输的数据包的捕获与分析功能的进一步了解,做到知己知彼。通过网络嗅探器对网络上传输的数据包进行捕获和分析,获取所需要的信息,利用对这些信息进行网络安全分析。因此,网络嗅探器的研究具有重要意义。

第2章 需求分析

2.1用户需求

网络嗅探(网络抓包)时一种利用计算机的网络接口截获其它计算机数据报文的工具。使用网络嗅探(网络抓包)工具的主要人群是黑客或网络安全技术人员,从攻击的角度,黑客可以使用网络嗅探(网络抓包)程序非法获取网络中传输的大量敏感信息,如账号和口令等,对网路安全极具威胁;从防守的角度,网络嗅探(网络抓包)技术是居于网络的入侵检测系统的最底层环节,是整个系统的数据来源,为技术人员提供重要的依据。无论是黑客还是安全人员,他们对抓包技术的利用途径都是一样的,即对网络上传输的数据包进行捕获与分析,获取不要的信息,但是他们的目的是不一样的,前者是专门利用计算机网络搞破坏或恶作剧,而后者是通过对这些信息的分析利用。维护网络安全与稳定。因此用户提出了以下要求:

 友好的图形化界面,不需要复杂的命令,大部分功能通过鼠标点击就可

达到,操作简单、方便;

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

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

需要的信息;

第 3 页

基于Winpcap的网络嗅探器设计与实现

 能够对网络中捕捉的数据包解码,用于故障分析;

 用户能够自定义过滤规则,使数据包的捕获更加精准和具有灵活性,增

强了软件功能以及与用户的交互能力;

2.2 功能需求

对于基于Winpcap的网络嗅探器设计与实现,网络嗅探(网络抓包)作为网络安全方面最常见的工具被广泛使用,本次设计实现的功能有:

 能够抓取IP数据包。  能够抓取TCP数据包。  能够抓取UDP数据包。  对抓取的数据包进行解码。

2.3 性能需求

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

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

(2)适应范围。优秀的抓包工具能够分析几百种协议。一般情况下,大多数的抓包工具至少能够分析下面的协议:IP、TCP、UDP等。

第 4 页

基于Winpcap的网络嗅探器设计与实现

第3章 Winpcap及相关协议介绍

3.1 Winpcap的组成结构

Winpcap 由内核级的数据包监听设备驱动程序(NPF)、低级动态链接库(packet.dll)和高层、用户 级、不依赖于操作系统的动态链接库(wpcap.dll)三部分构成。Winpcap 的组成结构如图3.1 所示。

其他

应用用户态 wpcap.dll 程序: 用缓冲区 1、直接访 packet.dll 问NPF ……………………………………………………核心态 缓冲区

包截获 应用程序 网络监测 应用程序 数据转储 应用程序 其 它核心态 图4.1 Winpcap统计引擎 转储引擎 缓冲区 核

过滤器 协 议 栈 数据链路驱动程序 ……………………………………………………网

数据包

图3.1 Wpcap

第 5 页

基于Winpcap的网络嗅探器设计与实现

(1)数据包监听设备驱动程序

在技术实现方面,为绕过操作系统的协议栈来访问网络上的原始数据包(raw packet)。这就要求 Winpcap 的一部分运行在操作系统核心内部,直接与网络接口驱动交互。由于这个部分是系统依赖 (System Dependent)的,在 Winpcap 的解决方案中它被视为是一个设备驱动,称作 NPF(Netgroup Packet Filter)。Winpcap 开发小组针对 Windows95,Windows98,WindowsME,Windows NT 4,Windows2000 和 WindowsXP 提供了不同版本的驱动(在 Windows95/98/ME 中是 VXD 文件,在 WindowsNT/2000 中是 SYS 文件)。这些驱动不仅提供了基本的特性(例如抓包、发送原始数据包——注入数据包),还有更高级的特性(例如可编程的过滤器系统和监视引擎)。前者可以被用来约束一个抓包会话只针对网络通信中 的一个子集(例如,只捕获特殊主机产生的 ftp 通信数据包),后者提供了一个强大而简单的统计网络通信量的机制(例如,获得网络负载或两个主机间的数据交换量)。 概括地讲,NPF可直接从数据链路层抓取网络数据包并过滤,可将数据包不加修改地传递给运行在用户层的应用程序。NPF 在不同的 WINDOWS 系统下是不同的(在 NT/2000/XP 中是 npf.sys 文件,一 般位于 C:\\WINDOWS\\system32\\drivers 中),其主要功能是过滤数据包,并在数据包上附加时间戳、数据包长度等信息。 (2)低级动态链接库(packet.dll)和用户级动态链接库(wpcap.dll)

为方便编程,Winpcap 提供的编程接口函数都封装在低级的 packet.dll(一般位于 c:\\windows\\ system32\\)和用户级动态连接库 wpcap.dll(一般位于 c:\\windows\\system32\\)中。底层 packet.dll 提供的 编程接口于 Windows API,packet.dll 的 API 是可以直接用来访问驱动的函数;packet.dll 运行在用户 层它将应用程序和数据包监听设备驱动程序隔离开来,使得应用程序可以不加修改地在不同的 WINDOWS系统上运行。高层的wpcap.dll导出了一组更强大且与LibPcap一致的高层抓包函数库(Capture Primitives),这些函数使得数据包的捕获以一种与网络硬件和操作系统无关的方式进行。wpcap.dll 使用 packet.dll 提供的服务,并向应用程序提供完善的监听接口。

第 6 页

基于Winpcap的网络嗅探器设计与实现

3.2 Winpcap简介

Winpcap是 Win32平台下强大的、有较好扩展性的底层网络分析体系结构, 是UNIX下的 Lipbcap移植到Windows下的产物, 是Win32环境下数据包捕获的开放代码函数库。Winpcap是第一个Win32开放式的捕获包的体系结构, 能够支持大多数应用程序的需要。

Winpcap包含了一个内核级的数据包过滤器NPF(Netgroup Packet Filter)、一个底层动态链接库(packet. dll)和一个高层的于系统的库(wpcap. dll)。NPF模块过滤数据包,将数据包不做任何改动的传递给用户。 packet. dll模块提供了Win32平台下的捕获包的驱动接口, 基于pack- e.t dll编写的程序可以不经过重新编译就在各种Win32平台下实现捕获数据包。wpcap. dll库不依赖于操作系统,且它包含了一些其他高层的函数,如过滤器生成器,用户定义的缓冲区和高层特性。Winpcap的主要功能在于于主机协议(如TCP 、IP)而发送和接收原始数据包。

Winpcap可用于实现如下功能:①捕获原始数据包,不管这个包是发往本地机,还是其他机器之间的交换包。②在数据包被发送到应用程序之前,通过用户定义的规则过滤。③向网络发送原始数据包。 ④对网络通信量做出统计。 这些功能依赖于Win32系统内核中的设备驱动以及一些动态链接库。Winpcap提供了一个强大的编程接口,它很容易地在各个操作系统之间进行移植,也很方便程序员进行开发。很多不同的工具软件使 用Winpcap于网络分析,故障排除,网络安全监控等方面。

Winpcap特别适用于下面这几个经典领域:

 网络及协议分析。  网络监控。  通信日志记录。  trafficgenerators。  用户级别的桥路和

第 7 页

基于Winpcap的网络嗅探器设计与实现

3.3 以太网简介

IEEE802.3所支持的局域网标准最早是由Xerox 开发的,后来通过DIGITAL 公司,Intel 公司和Xerox 联合扩展为以太网标准,符合以太网标准的局域网成为以太网。

以太网上的每一个主机为了标示自己的唯一“身份”都有自己的网口接口卡 (NIC)。网络接口卡通常安装在主机内并能为主机提供一个6 字节的物理地址。 在遵循IEEE802 标准的以太网中,这个物理地址称为MAC地址,MAC地址是 唯一的,任意两个不同的网络接口卡都具有不同的MAC地址。

以太网MAC 地址可以分为三类:单播地址,广播地址和多播地址。以太网MAC 帧格式具有7 个域,分别为:前导码,帧首定界符,目的MAC 地址,源MAC 地址,协议类型或数据长度,数据帧校验序列,如表3-1 所示。

前导码 帧首定界符 目的MAC地址 (6字节) 源MAC地址 (6字节) 协议类型 (2字节) 数据 帧校验序列 (4字节) (7字节) (1字节) 表3-1 以太网的MAC 帧格式

3.3.1 网际协议IP

IP(网际协议)是 TCP/IP 协议族中的核心协议,它负责数据包从源点交付到终点的传输。所有的TCP、UDP、ICMP 及IGMP 数据都以IP 数据包格式传输。该协议提供不可靠,无连接数据报传送服务,但只能保证数据包被发送发送到目的主机,而不管传输是否正确,具体的纠错重传过程是交由传输层完成的。

3.3.2 用户数据报协议UDP

UDP 协议的位置是处在IP 协议所在层的上层。有OSI 模型知,传输层协

第 8 页

基于Winpcap的网络嗅探器设计与实现

议。包括了UDP 和TCP 协议。但是,UDP 协议有个缺点,它不提供端点之间的确认和重传功能,因此就不能保证数据安全准确地到达目的端点,所以该协议是一种不可靠地传输协议。

3.3.3 传输控制协议TCP

TCP(传输控制协议)协议时 TCP/IP 协议族种面向连接的、可靠的传输层协议。TCP 与UDP 不同,他允许发送和接收字节流形式的数据。为了使服务器 和客户端以不同速度发送和接收数据,TCP 提供了发送和接收两个缓冲区,可以双向发送数据。TCP 在报文中加上一个递增的确认序列号来告诉发送端,接收端期望收到的下一个报文,如果在规定的时间内,没有收到关于这个包的确认相应,则重新发送此包,这确保了TCP 是一种可靠地传输层协议。

TCP 所提供服务的主要特点:

 面向连接的传输;  端到端的通信;

 高可靠性,确保传输数据的正确性,不出现丢失或乱序;  全双工方式传输;

 采用字节流方式,即以字节为单位传输字节序列;  紧急数据传送功能。

第4章 程序设计与实现

4.1 程序运行环境

本系统运正常行的硬件环境需求如下:  CPU:PIII 800MHZ及其以上;  内存:128MB及其以上;

第 9 页

基于Winpcap的网络嗅探器设计与实现

 本系统运正常行的软件环境需求如下:  操作系统:Windows 8;

 动态链接库和驱动程序:Winpcap4_1_2.exe;

4.2 程序设计

4.2.1 程序设计流程图

开始 查看设备列表 打开网络设备 编译过滤规则 设置过滤规则 捕包并处理 Pcap_loop(关闭并返回Pcap_close结束 图4.1 流程图

第 10 页

基于Winpcap的网络嗅探器设计与实现

4.2.2 程序具体设计

(1)新建工程并把需要的文件导入工程。导入include文件如图4.2所示。同时用同样的方法在“链接器—>常规”中添加lib文件。

图4.2 导入文件

(2)设计主题对话框,如图4.3所示。

图4.3 主题对话框

第 11 页

基于Winpcap的网络嗅探器设计与实现

(3)设置选择网卡对话框,如图4.4所示。

图4.4 选择网卡对话框

(4)创建protocoInfo.h文件,定义协议格式和协议中使用的宏。 协议结构体的定义:

typedef struct _ETHeader // 14字节的以太头 typedef struct _IPHeader // 20字节的IP头 typedef struct _TCPHeader // 20字节的TCP头 typedef struct _UDPHeader

宏定义:

#define ETHERTYPE_IP 0x0800 //MAC帧中的协议类型字段的取值 #define ETHERTYPE_ARP 0x0806

// 协议,IP首部中的ipProtocol字段,标明上层协议 #define PROTO_ICMP 1 #define PROTO_IGMP 2 #define PROTO_TCP 6 #define PROTO_UDP 17 // 定义TCP标志

#define TCP_FIN 0x01 #define TCP_SYN 0x02 #define TCP_RST 0x04 #define TCP_PSH 0x08 #define TCP_ACK 0x10 #define TCP_URG 0x20 #define TCP_ACE 0x40 #define TCP_CWR 0x80

第 12 页

基于Winpcap的网络嗅探器设计与实现

(5)使用类向导定义控件相关的变量。主窗体中变量的定义,如图4.5所示;选择网卡对话框中变量的定义,如图4.6所示。

图4.5 主窗体变量定义

图4.6 选择网卡窗体变量定义

第 13 页

基于Winpcap的网络嗅探器设计与实现

(6)程序函数的定义与实现。

文件CSniffer201200824_302_318Dlg.cpp中定义的函数有:

void OnBnClickedButtonNic()//点击“选择网卡”按钮的响应事件 void SetFiltRules()//设置过滤规则的方法

void DecodeIPPacket(const unsigned char *pData)//IP分组解析

void DecodeUDPPacket(const unsigned char *pData) //UDP数据报解析 void DecodeTCPPacket(const unsigned char *pData)//TCP解析 void CallbackFunctionPacket(unsigned char *user, const struct pcap_pkthdr *Winpcaphead, const unsigned char *packetdata) //解析包的回调函数

void CSniffer201200824_302_318Dlg::SetInitData() //用全局变量给成员变量赋值 UINT ProcessFunc(LPVOID pParam)//线程函数

void CSniffer201200824_302_318Dlg::StartCapture() //抓包函数

void CSniffer201200824_302_318Dlg::OnBnClickedButtonStartcap()//点击\"开始抓包\"按钮的响应事件

文件ChooseNIC.cpp中定义的函数有:

void ChooseNIC::OnBnClickedOk() //点击“确定”按钮的响应事件 pcap_if_t * ChooseNIC::GetCurrentDevice() //返回当前设备指针 pcap_t * ChooseNIC::GetPcapHandle() //返回pcap文件指针

第 14 页

基于Winpcap的网络嗅探器设计与实现

第5章 系统测试

(1)主界面测试结果,如图5.1所示。

图5.1 主界面

(2)开始抓包之前一定要先首先选择网卡,否则会弹出提示框,如图5.2所示。

图5.2 提示选择网卡

第 15 页

基于Winpcap的网络嗅探器设计与实现

(2)执行选择网卡,如果选择超出范围则会弹出提示框,如图5.3所示;若输入的在选择范围之内,则会提示选择正确的提示,如图5.4所示。

图5.3 选择超出范围

图5.4 选择成功

第 16 页

基于Winpcap的网络嗅探器设计与实现

(3)选择网卡之后,便是要选择抓包的类型,选择之后,结果如图5.5所示。

图5.5 选择抓包类型

(4)选择都正确之后,开始抓包。抓包后显示的结果如图5.6所示。

图5.6 抓包结果显示

第 17 页

基于Winpcap的网络嗅探器设计与实现

第6章 设计总结与展望

程序设计和课程设计报告都已经梳理完成,对于本次课程设计,我们收获很大,收获的不仅仅是知识,还有经历,这是一笔宝贵的财富,同时也有关于基于Winpcap的网络嗅探器设计与实现的思想,这些思想包含了对嗅探工具的展望以及本组嗅探工具设计中的一些不足。

6.1 总结

本次设计的程序是在Winpcap库的基础上对网络数据进行捕获,不需要编写复杂的设备驱动程序和代码就可以实现抓包,使得其编写过程比较简便、有效率。从课程设计选题,到查阅资料,思考课题的解决的方案,再到课题的实现,是一个集中学习的过程,是一个灵活运用知识的过程,是一个由量变到质变的过程。真的感觉到我们都进步了,感觉到我们学到一些东西了,感觉到我们求知的态度。我们这次做的网络嗅探工具需要用到MFC编程,尽管以前接触过VC++编程,但是对此也不是太精通。所以在查询资料期间,我们认真看相关的内容,切实沉入到学习中去,慢慢地,我们对MFC的理解越来越深了,同时也加深了对VC++相关知识的理解,尤其是面向对象这一部分,锻炼了自己的编程能力。

在编写程序的过程中,我们每每为自己的一些新的感悟而欣喜,为排除每一个错误而兴奋,并且将它们记载下来。编程序需要功夫,调试程序更需要耐心和技巧。期间,我们不断地拓展自己的思路,尽可能地为程序添加新的功能,当然,这中间是少不了错误的发生的。也正是在编写——调试——再编写的过程中,我理解了MFC框架机制,知道了如何在程序中添加自己的代码,如何自定义自己的消息,如何实现多线程的运行。

就最终的成果而言,程序实现了我们要求的功能,通过对过滤条件的设置,对数据包的捕获,并显示数据包的内容,诸如协议类型、长度、时间戳等信息,并且还增加了数据包统计、数据保存、用户文档帮助等功能,更加方便了用户的使用。

第 18 页

基于Winpcap的网络嗅探器设计与实现

6.2 展望

随着网络技术的迅猛发展,网络安全将被人们越来越重视,嗅探技术作为网络安全攻防中最基础的技术,嗅探工具的发展将向着集成化和易用型发展这两个方向发展,我们相信这也是绝大部分软件的发展趋势。

(1)集成化,是指将其它非嗅探功能集成在一个软件上,例如将网络管理功能添加进来,当管理员发现某台主机有问题时,也希望能马上对其进行管理,这种软件集网络故障分析和健康管理于一体,是具有很强的竞争力和生命力的。

(2)易用性,包括易理解性、易学习性、易操作性,这对提高产品使用效率和竞争力有重要作用。

需求是创新的动力,内在的驱动更是创新的源泉,没有任何事物是至善的此程序还有一些可增强的地方,除了上面提到的两点外,还可以将界面美化一下,程序的功能菜单按钮也可以通过添加鼠标响应事件更加个性化,此外还可以增加自动搜索局域网内的主机功能,通过直接点击特定主机的图标达到设置过滤条件的目的,简化操作。

第 19 页

基于Winpcap的网络嗅探器设计与实现

参考文献

[1]刘永华.网络信息安全技术[M].第2版.北京:科学出版社.2011. [2]胡建伟.网络安全[M].北京:科学出版社.2011.

[3]叶树华.网络编程实用教程[M].第2版.北京:人民邮电出版社.2010. [4] 罗军舟.TCP/IP协议及网络编程技术[M].北京:清华大学出版社.2007. [5]汪贤锋.TCP/IP协议的漏洞分析及防范[J].电脑知识与技术.2008. [6]胡晓元.史浩山.Winpcap包截获系统的分析及其应用[J].计算机工程.2005.

[7]刑青山.胡强.基于Winpcap的网络监听系统设计与实现[J].科技信息.2008,(7)

[8]严有日.网络嗅探器Sniffer技术分析及研究[J].西安文理学院学报:自然科学版,2011(1):77-80.

[9]吴聪.许慧雅.网络嗅探器中协议包捕获的研究与实现[J].福建电脑.2008.12.

[10]沈辉.张龙.基于Winpcap的网络数据监测及分析[J].计算机科学.2012.

第 20 页

基于Winpcap的网络嗅探器设计与实现

致 谢

本次课程设计在选题及设计过程中,得到孙老师和夏老师的悉心指导。程序设计过程中,孙老师多次帮助我分析思路,开拓视角;在我遇到困难想放弃的时候,夏老师给予我极大的支持和鼓励。孙老师和夏老师严谨求实的治学态度,踏实坚韧的工作精神,将使我终生受益。在此,向孙老师和夏老师致以诚挚的谢意和崇高的敬意!

同时,感谢在本次课设过程中给我提供帮助的同学,你们的耐心指导,认真改错,我才有了这次课设的顺利完成。在此,向你们表示衷心的谢意!

第 21 页

因篇幅问题不能全部显示,请点此查看更多更全内容