局域网抓包软件的设计与实现
摘 要
随着网络技术的不断发展,社会进入了一个信息爆炸的时代,世界也由于网络而变小,人们通过各种技术和工具使交流突破了空间的限制。在网络技术发展与普及的同时,网络安全问题引起了人们的广泛关注。因此,研究并开发出一种能够有效地实时捕获网络信息的系统具有极其重要的意义。基于这一情况,本论文针对网络数据的捕获与数据包信息分析等问题进行了深入的探讨和研究。本论文逐一介绍了信息捕获中的相关技术及需求分析,在系统设计中对数据包捕获模块、解码数据包模块和数据库信息模块的实现进行了详细讲述。通过运用WinPcap开发包实现网络数据包的捕获,利用TCP/IP 协议的封装理论和自下而上的分析实现了数据包信息的分析,并且将分析出来的信息存入数据库。另外,还能实现一些功能,如对指定的IP地址进行数据包的捕获,对捕获结果进行显示等。
关键词:WinPcap;数据捕获;信息分析;局域网
The Design and Implementation of LAN Information Capture Software
Abstract
As development of the network and technology, the society comes into a age of information explosion. Due to the network, the world has become smaller, and people use all kinds of technologies and tools to break through the limitation of communication. The network security has been widely concerned followed by the development and universal of the network technology. Therefore, it is great significance that an effective real-time interception network information system is studied and developed. Based on this situation, this thesis in-depth studies to capture the network data and so on. Besides, it introduces relative technology and the needs information capture. The realization of the data capture module, data packet decoded module and database information module is displayed for detail in the system's design. The network data packet is captured through WinPcap, some functions has been realized, such as network data packet capture, data packets of information analysis by using TCP / IP protocol encapsulation theory and bottom-up, and will analyze the information stored in the database. Simultaneously, this software would also increases some functions, such as data packet capture by the IP address, make the results and statistics,display the results of data packet capture and so on.http://www.16sheji8.cn/
Key words: WinPcap; data capture; information analysis ; LAN
目 录
论文总页数:25页
1 引言 1
1.1 课题背景及意义 1
1.2 本课题研究的相关技术及方法 1
1.3 VISUAL C++ 6.0 1
1.4 WINPCAP简介 2
2 基于信息捕获的相关理论基础 4
2.1 TCP/IP协议 4
2.2 数据封装与分用过程 6
2.3 IP协议 7
3 需求分析 9
3.1 功能需求 9
3.2 性能要求 10
4 局域网信息捕获器的设计 10
4.1 功能概述 10
4.2 系统功能模块的设计 11
4.2.1 数据包捕获模块 11http://www.16sheji8.cn/
4.2.2 数据分析模块实现 13
4.2.3 数据库模块的实现 16
4.3 用户界面模块 19
5 局域网信息捕获测试和测试结果 20
5.1 测试环境 20
5.2 测试结果 20
结 论 22
参考文献 23
致 谢 24
声 明 25
1 引言
1.1 课题背景及意义
计算机网络的发展给计算机产业和整个人类的工作、生活方式带来了巨大的变化,特别是信息技术的发展使一个信息缺乏的时代进入了一个信息爆炸的时代,世界也由于Internet而变小。人们通过各种技术,工具使得交流突破了空间的限制。全球范围内的网络互联给人们的生活和工作带来了方便,人们正享受网络技术带给我们美好生活。但同时某些不法分子利用网络的漏洞非法入侵他人的主机系统,有的利用网络盗取他人个人信息,如网上银行帐号密码等,对他人财产安全造成了重大威胁。据有关资料统计我国每年通过计算网络进行违法行为以30%的速度上升。面对计算机犯罪越来越多的趋势,及网络上日益泛滥的信息垃圾和污染情况,我国政府未雨绸缪,已经制定了关于互联网络使用的法律法规,网络安全问题已面临着重大挑战。http://www.16sheji8.cn/
目前我国正在进行大规模的现代化经济建设,需要使用自己的网络和信息安全系统来保护自己的网络和信息系统,尤其是对于全国性大型计算机网络而言,必须将网络安全和信息安全放在非常重要的地位上,而从长远角度看,这只能依靠我们自己解决。因此建立网络安全系统是我们现在迫切需求,这项工作对我们来说具有重大的政治和经济意义面对这种形式研究并开发出一种能方便有效的实时监视和捕获可疑网络信息的系统迫在眉睫。
随着信息化程度的提高,使我们从一个封闭的环境进入到一个开放的世界,但我们所担心和关心的问题便是网络安全问题,也就是内部网络安全和外部网络安全的问题。本课题正是针对这种情况和需求,对实时数据捕获与网络信息监控提出系统设计方案,并对信息过滤和跟踪的方法和技术进行研究,这便是我的论文研究的意义与目的。
1.2 本课题研究的相关技术及方法
网络数据捕获技术是获取信息的关键技术,它通过监听技术,过滤技术获取原始数据,根据TCP/IP分层理论进行层层拆解,提取相关协议中的信息。本毕业设计主要通过使用Winpcap开发包,在VC++环境下编写出了一款简单的软件对数据包信息按TCP协议类型、UDP协议类型和特定IP地址进行分类捕获,捕获出所需要的敏感信息,并且将捕获出来的信息写入数据库。
1.3 Visual C++ 6.0
Visual C++6.0是微软公司推出的开发Win32应用程序(Windows 95/98/2000/XP/NT)的、面向对象的可视化集成工具。它的最大优点就是提供了功能强大的MFC类库,MFC是一个很大的C++类层次结构,其中封装了大量的类及其函数,很多Windows程序所共有的标准内容可以由MFC的类来提供,MFC类为这些内容提供了用户接口的标准实现方法,程序员所要做的就是通过预定义的接口把具体应用程序特有的东西填入这个轮廓,这将简化编程工作,大大的减少程序员编写的代码数量,使编程工作变得更加轻松容易。 http://www.16sheji8.cn/
1.4 Winpcap简介
Winpcap(windows packet capture)是Windows平台下一个免费,公共的网络访问系统。开发Winpcap这个项目的目的在于为win32应用程序提供访问网络底层的能力。它提供了以下的各项功能:
(1)捕获原始数据报,包括在共享网络上各主机发送/接收的以及相互之间交换的数据报;
(2)在数据报发往应用程序之前,按照自定义的规则将某些特殊的数据报过滤掉;
(3)在网络上发送原始的数据报;
(4)收集网络通信过程中的统计信息。
Winpcap的主要功能在于独立于主机协议(如TCP/IP)而发送和接收原始数据报。也就是说,Winpcap不能阻塞、过滤或控制其他应用程序数据报的发收,它仅仅只是监听共享网络上传送的数据报。Winpcap是Win32平台下的数据包捕获与网络分析架构,由三个模块构成:NPF, packet.dll, wpcap.dll。前一个工作在内核层,后两个工作在用户层。第一个模块是内核部分NPF (Netgroup Packet Filter),在Win95/98中它是一个VXD(虚拟设备驱动程序文件)文件,在WinNT/Win2000下是一个SYS文件。它的主要功能是过滤数据包,并把这些数据包原封不动地传给用户态模块。当然也添加了一些系统特定的标志(比如时间戳管理)。这个过程中包括了一些操作系统特有的代码。第二个模块packet.dll用来在不同的Win32平台下提供一个通用的公共的包驱动接口。事实上,不同版本的Windows平台在内核层模块和用户进程之间的接口不完全相同,packet.dll用于解决这些不同。提供了一套系统独立的API(Application Programming Interface 应用编程接口),调用packet.dll的程序能够运行在不同版本的 Windows 平台上而无需重新编译。packet.dll还有一些附加的功能。它可执行一些低层操作:如:获得网卡名字,动态装载驱动,得到比如机器的网络掩码、硬件冲突等一些系统特定的信息。第三个模块wpcap.dll是系统无关的,它提供了更高层、抽象的函数。它包括了一些比如过滤器生成、用户级缓冲等其它的高层函数,增加了比如统计和包发送等更高级的特性。因此程序员能处理两种类型的API:一套原始函数集,包含在packet.dll中,直接与内核层调用匹配;另一套高层函数由wpcap.dll提供,便于用户调用,功能更强大。程序员能随意使用wpcap.dll,但只能在受限的环境中直接使用packet.dll.http://www.16sheji8.cn/