版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGE局域网抓包软件的设计摘要随着网络技术的不断发展,社会进入了一个信息爆炸的时代,世界也由于网络而变小,人们通过各种技术和工具使交流突破了空间的限制。在网络技术发展与普及的同时,网络安全问题引起了人们的广泛关注。因此,研究并开发出一种能够有效地实时捕获网络信息的系统具有极其重要的意义。基于这一情况,本论文针对网络数据的捕获与数据包信息分析等问题进行了深入的探讨和研究。本论文逐一介绍了信息捕获中的相关技术及需求分析,在系统设计中对数据包捕获模块、解码数据包模块和数据库信息模块的实现进行了详细讲述。通过运用WinPcap开发包实现网络数据包的捕获,利用TCP/IP协议的封装理论和自下而上的分析实现了数据包信息的分析,并且将分析出来的信息存入数据库。另外,还能实现一些功能,如对指定的IP地址进行数据包的捕获,对捕获结果进行显示等。关键词:WinPcap;数据捕获;信息分析;局域网引言课题背景及意义计算机网络的发展给计算机产业和整个人类的工作、生活方式带来了巨大的变化,特别是信息技术的发展使一个信息缺乏的时代进入了一个信息爆炸的时代,世界也由于Internet而变小。人们通过各种技术,工具使得交流突破了空间的限制。全球范围内的网络互联给人们的生活和工作带来了方便,人们正享受网络技术带给我们美好生活。但同时某些不法分子利用网络的漏洞非法入侵他人的主机系统,有的利用网络盗取他人个人信息,如网上银行帐号密码等,对他人财产安全造成了重大威胁。据有关资料统计我国每年通过计算网络进行违法行为以30%的速度上升。面对计算机犯罪越来越多的趋势,及网络上日益泛滥的信息垃圾和污染情况,我国政府未雨绸缪,已经制定了关于互联网络使用的法律法规,网络安全问题已面临着重大挑战。目前我国正在进行大规模的现代化经济建设,需要使用自己的网络和信息安全系统来保护自己的网络和信息系统,尤其是对于全国性大型计算机网络而言,必须将网络安全和信息安全放在非常重要的地位上,而从长远角度看,这只能依靠我们自己解决。因此建立网络安全系统是我们现在迫切需求,这项工作对我们来说具有重大的政治和经济意义面对这种形式研究并开发出一种能方便有效的实时监视和捕获可疑网络信息的系统迫在眉睫。随着信息化程度的提高,使我们从一个封闭的环境进入到一个开放的世界,但我们所担心和关心的问题便是网络安全问题,也就是内部网络安全和外部网络安全的问题。本课题正是针对这种情况和需求,对实时数据捕获与网络信息监控提出系统设计方案,并对信息过滤和跟踪的方法和技术进行研究,这便是我的论文研究的意义与目的。本课题研究的相关技术及方法网络数据捕获技术是获取信息的关键技术,它通过监听技术,过滤技术获取原始数据,根据TCP/IP分层理论进行层层拆解,提取相关协议中的信息。本毕业设计主要通过使用Winpcap开发包,在VC++环境下编写出了一款简单的软件对数据包信息按TCP协议类型、UDP协议类型和特定IP地址进行分类捕获,捕获出所需要的敏感信息,并且将捕获出来的信息写入数据库。VisualC++6.0VisualC++6.0是微软公司推出的开发Win32应用程序(Windows95/98/2000/XP/NT)的、面向对象的可视化集成工具。它的最大优点就是提供了功能强大的MFC类库,MFC是一个很大的C++类层次结构,其中封装了大量的类及其函数,很多Windows程序所共有的标准内容可以由MFC的类来提供,MFC类为这些内容提供了用户接口的标准实现方法,程序员所要做的就是通过预定义的接口把具体应用程序特有的东西填入这个轮廓,这将简化编程工作,大大的减少程序员编写的代码数量,使编程工作变得更加轻松容易。Winpcap简介Winpcap(windowspacketcapture)是Windows平台下一个免费,公共的网络访问系统。开发Winpcap这个项目的目的在于为win32应用程序提供访问网络底层的能力。它提供了以下的各项功能:(1)捕获原始数据报,包括在共享网络上各主机发送/接收的以及相互之间交换的数据报;(2)在数据报发往应用程序之前,按照自定义的规则将某些特殊的数据报过滤掉;(3)在网络上发送原始的数据报;(4)收集网络通信过程中的统计信息。Winpcap的主要功能在于独立于主机协议(如TCP/IP)而发送和接收原始数据报。也就是说,Winpcap不能阻塞、过滤或控制其他应用程序数据报的发收,它仅仅只是监听共享网络上传送的数据报。Winpcap是Win32平台下的数据包捕获与网络分析架构,由三个模块构成:NPF,packet.dll,wpcap.dll。前一个工作在内核层,后两个工作在用户层。第一个模块是内核部分NPF(NetgroupPacketFilter),在Win95/98中它是一个VXD(虚拟设备驱动程序文件)文件,在WinNT/Win2000下是一个SYS文件。它的主要功能是过滤数据包,并把这些数据包原封不动地传给用户态模块。当然也添加了一些系统特定的标志(比如时间戳管理)。这个过程中包括了一些操作系统特有的代码。第二个模块packet.dll用来在不同的Win32平台下提供一个通用的公共的包驱动接口。事实上,不同版本的Windows平台在内核层模块和用户进程之间的接口不完全相同,packet.dll用于解决这些不同。提供了一套系统独立的API(ApplicationProgrammingInterface应用编程接口),调用packet.dll的程序能够运行在不同版本的Windows平台上而无需重新编译。packet.dll还有一些附加的功能。它可执行一些低层操作:如:获得网卡名字,动态装载驱动,得到比如机器的网络掩码、硬件冲突等一些系统特定的信息。第三个模块wpcap.dll是系统无关的,它提供了更高层、抽象的函数。它包括了一些比如过滤器生成、用户级缓冲等其它的高层函数,增加了比如统计和包发送等更高级的特性。因此程序员能处理两种类型的API:一套原始函数集,包含在packet.dll中,直接与内核层调用匹配;另一套高层函数由wpcap.dll提供,便于用户调用,功能更强大。程序员能随意使用wpcap.dll,但只能在受限的环境中直接使用packet.dll.WWpcap.dllApplicationNPFDeviceDriverPacket.dllUserLevelKernelLevelNetworkPackets图1WINPCAP结构图总的说来,Packet.dll直接映射了内核的调用。Wpcap.dll提供了更加友好、功能更加强大的函数调用。Winpcap的具体结构图1所示:Winpcap是用NDIS(Windows的通信协议程序(比如TCP/IP)和网络设备驱动器之间通信的规范)的,将自己注册为一个协议处理驱动。Wincap的使用非常方便,但是它有一个致命的缺陷就是只适用于共享式以太网络,对于交换式网络下的数据则无能为力。经过测试,在使用交换机连接的局域网下,Wincap只能监听到本网段内的数据,而对于来自其他网段的数据则无法监听,除非你把probe接到交换机之前或者接到交换机的console口上,不过那样的弊端是显而易见的,所以,Winpcap的应用还是有局限性的。Winpcap结构图如下:图2NPFdevicedriver基于信息捕获的相关理论基础TCP/IP协议TCP/IP(TransferContrcol/InternetProtocol)传输控制协议/网际协议起源于60年代末美国政府资助的一个分组交换网络研究项目,到90年代已发展成为计算机之间最常应用的组网形式。它是能够在网络中提供可靠的数据传输和无连接的数据报服务的一组协议。提供可靠数据传输的协议称为传输控制协议TCP,提供网络寻址的协议称为网际协议IP,它只是TCP/IP协议族的其中的两种协议。TCP/IP协议族是一组不同的协议组合在一起构成的协议族,它是一个真正的开放系统。现已成为全球互联网中的基础。基于TCP/IP协议的网络体系结构,TCP/IP协议分为四层如图3所示,每一层分别负责不同的通信功能。应用层Telnet、Ftp、Email等传输层TCP、UDP网络层IP、ICMP、IGMP网络接口层设备驱动程序及接口卡图3TCP/TP协议族的四个层次链路层:有时也称作数据层或网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理任何传输媒介的物理接口细节,它使用的协议为以太网协议。网络层:有时也称作互联网层,处理分组在网络中的活动,例如分组的选路。在TCP/IP协议族中,网络层协议包括IP(网际协议)、ICMP(因特网网间控制报文协议)以及IGMP(因特网组管理协议)。传输层:它主要为两台主机上的应用程序提供端到端的通信。TCP/IP协议族中,有两个互不相同的传输协议:UDP(用户数据报协议)、TCP(传输控制协议)。TCP为两台主机提供高可靠性的数据通信。它所做的工作包括把应用程序交给它的数据分成合适的小块交给下面的网络层,确认接收到的分组,设置发送最后确认分组的超时时钟等,由于运输层提供了高可靠性的端到端的通信,因此应用层可以忽略所有这些细节。UDP则为应用层提供一种非常简单的服务。它只是把称作数据报的分组从一台主机发送到另一台主机,但并不保证该数据报能到达另一端。任何必需的可靠性必须由应用层来提供。应用层:它负责处理特定的应用程序细节。对于TCP/IP协议族,它提供Telnet(远程登录协议)、FTP(文件传输协议)、SMTP(简单邮件传送协议)、POP3(邮件接受协议)、SNMP(简单网络管理协议)。通常应用程序是一个用户进程,而下面的三层进程则是一般在内核中执行的。应用层关心的是应用程序的细节,它不关心数据在网络中的传输。下三层对应用程序一无所知,但却要处理所有的通信细节。在TCP/IP协议族中,有很多协议。TCP和UDP是两种最为著名的运输层协议,二者都使用IP作为网络层协议。虽然TCP使用不可靠的IP服务,但它却提供一种可靠的运输层服务。除了以上提到的协议,还有下面几个协议:IPARP(地址解析协议)、RARP(逆向地址解析协议)、动态选路协议(RIP、OSPF、BGP、CIDR)、DNS(域名系统)、TFTP(简单文件传送协议)等。图4为TCP/IP网络体系结构与上述各协议之间的关系模型。图4TCP/IP协议族中不同层次的协议从图的模型中可以看到,应用层的大多数应用程序通过TCP、UDP来访问网络层,或者通过ICMP来使用网络层,如Ping、TraceRoute等也可以使用IP直接访问网络层。传输层中的TCP、UDP为应用层提供可靠的或不可靠网络传输的网络传输服务。网络层的ICMP是IP协议的附属协议,IP协议用它与路由器之间交换错误报文或其它控制信息。网络接口层的ARP、RARP是以太网和令牌环使用的特殊协议,用来转换IP层和网络接口层使用的地址。数据封装与分用过程以用户用TCP协议传送数据为例,数据被送入协议栈中,然后逐个通过每一层直到被当作一串比特流送入网络。然后逐个通过每一层直到被当作一串比特流送入网络。其中每一层对收到的数据都要增加一些首部信息(有时还要增加尾部信息)。TCP传给IP的数据单元称作TCP报文段或简称为TCP段(TCPsegment)。IP传给网络接口层的数据单元称作IP数据报。通过以太网传输的比特流称作帧(Frame)。这就是通常说的数据的封装过程,如图5所示。图5数据进入协议栈时的封装过程当目的主机收到一个以太网数据帧时,数据就开始从协议栈中由底向上升,同时去掉各层协议加上的报文首部。每层协议盒都要去检查报文首部中的协议标识,以确定接收数据的上层协议。这个过程称作分用(Demultiplexing),图6显示了该过程是如何发生的。图6数据帧的分用过程IP协议IP是TCP/IP协议族中最为核心的协议。所有的TCP、UDP、ICMP及IGMP数据都以IP数据报格式传输。IP提供不可靠、无连接的数据报传送服务。IP数据报的首部信息如图7:图7IP数据报格式及首部中的各字段IP各域的含义如下:版本:当前IP协议的版本号,本论文采用的版本号为4;首部长度:以32bit为单位的包头长度;服务类型:规定对本数据报的处理方式,比如优先权等;总长:以Byte为单位的整个IP数据报长度;标识:信源主机赋予每个IP数据报的唯一标识符号,用于控制分片及其重组;标志和片偏移:同样用于控制分片及其重组;生存时间:设置本数据报的最大生存时间,以秒为单位;协议:表示创建本IP数据报数据区数据的高层协议的类型,如TCP,UDP等;头标校验和:用于保证头标数据的完整性;源IP地址和目的IP地址:分别指发送本数据报的主机IP地址和接受本数据报的主机的IP地址;选项:用于控制和测试,是IP数据报中可选的部分,包含“源路径”、“路径记录”、“时间戳”等几种类型。TCP协议是网络中应用最为广泛的协议,许多的应用层协议都是在建立在TCP协议之上的。TCP首部的各字段如图8所示:IP首部IP首部 TCP首部TCP数据IP数据报TCP报文段20字节20字节图8TCP数据在IP数据报中的封装TCP协议头部信息如下:源端口:发送端TCP端口号。目的端口:接收端TCP端口号;序号:指出段中数据在发送端数据流中的位置;确认号:指出本机希望下一个接收的字节的序号;头标长度:以32bit为单位的段头标长度,是针对变长的“选项”域设计的;码位:指出段的目的与内容,不同的各码位置位有不同的含义;窗口:用于通告接收端接收缓冲区的大小;校验和:这是可选域,置0表示未选,全1表示校验和为伍紧急指针:当码位的URG置位时,指出紧急指针的序号。UDP协议是英文UserDatagramProtocol的缩写,即用户数据报协议,主要用来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用UDP协议。UDP协议从问世至今已经被使用了很多年,虽然其最初的光彩已经被一些类似协议所掩盖,但是即使是在今天,UDP仍然不失为一项非常实用和可行的网络传输层协议。UDP数据报各域的意义与TCP段中相应的域相同。只有校验和有些不同,除UDP数据报本身外,它还覆盖一个附加的“伪头标”。这个伪头标来自于IP报头,包括:源IP地址、信宿IP地址、协议类型、UDP长度及填充域。UDP首部的各字段图9所示:图9UDP首部局域网信息捕获器的设计功能概述通过前面的叙述可以知道,这款软件具有的功能,那就是:能够分别捕获局域网中的TCP协议类型数据,UDP协议类型数据和从某一特定的IP地址发送出来的TCP协议类型数据和UDP协议数据类型。并且,将这些捕获出来的数据包的基本信息存入到数据库中,提供给网络管理员使用和进一步的分析。系统流程图如下图:图10系统流程图本系统包括三个基本模块,分别是数据包捕获模块,数据分析模块和数据库模块。其中数据包捕获模块的功能是:利用Winpcap控件,通过网卡设备从网络中捕获数据包;数据分析模块的功能是:主要实现数据的解析,从网络适配器中捕获到的数据的为原始数据(rawdata),这些原始数据为二进制格式,必须转化为能比较好明白的格式,这就要求将这些原始数据能按照网络数据传输的具体格式来保存,主要为了能较好的读懂相关的信息,以便使用者分析;数据库模块的功能是:经过前两个模块处理后的数据,现在已经转化成了对我们有用的信息了,而这些信息不可能一直让他存放在内存中,那么就需要在数据库中建立相应的表,把这些信息存贮在这些数据库表的相应列名中,以便使用者处理、使用。本人主要负责数据包捕获模块。系统功能模块的设计数据包捕获模块数据包捕获模块主要用Winpcap软件实现,模块的设计思想遵循Winpcap捕获数据包的流程,流程分三步:查找设备,打开设备和捕获数据的函数。利用WinPcap结构提供的wpcap.dll来开发实现数据包捕获程序。流程图如下:图11数据捕获模块流程图这里给出其主要过程:先确定要在其上进行监测的网络适配器,得到现有的网络适配器的列表和他们的描述,从而获得该NIC的相关信息。 if(pcap_findalldevs_ex(PCAP_SRC_IF_STRING,NULL,&alldevs,errbuf)==-1) { MessageBox("查找设备出错","提示"); return;}接下来打开所获得的网络适配器,其中pcap_open函数的参数1为上面获得的NIC名称,参数2定义了网络监测程序所捕捉的最大字节数。参数3指示是否将网络适配器设为混杂模式,PCAP_OPENFLAG_PROMISCUOUS表示工作方式为混杂模式。参数4为捕获时间限制,单位为毫秒。参数5为错误信息缓存。该函数负责按照用户指定参数和其它系统默认值初始化WinPcap,并返回会话句柄//打开设备 adhandle=pcap_open(d->name,65536, PCAP_OPENFLAG_PROMISCUOUS, 1000,NULL,errbuf);当网卡已打“打开”并且具体配置好后,就可以进入捕获了。考虑到系统资料的占用等问题,利用了线程来解决此问题,捕获数据是新建一个线程,来实现数据的捕获,再在线程中处理数据的解析和特征码的提取,其中CreateThread函数的参数1为指向SECURITY_ATTRIBUTES结构体的指针,参数2指定线程堆栈大小,参数3指定线程执行函数名称,参数4表示给新线程的参数,参数5为线程指定的更多控制参数,参数6为新线ID。代码如下//这里创建一个线程来处理数据 LPDWORDThID=NULL; m_handle=CreateThread(NULL,0,ThreadProc,this,0,ThID); if(m_handle==NULL) { return; }//线程处理函数DWORDWINAPIThreadProc(LPVOIDlpParameter){ CLjDlg*m_dlg=(CLjDlg*)lpParameter; structpcap_pkthdr*header; //捕获数据包的头 constu_char*pkt_data;//指向常量的指针 intres;//pcap_next_ex的返回值 m_dlg->SetDlgItemText(IDC_STATIC_TIP,"线程开始
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年西安市雁塔区第一小学教师招聘备考题库带答案详解
- 初中生物概念建构中的多媒体资源运用与教学策略教学研究课题报告
- 2025年保定市宽高高级中学招聘备考题库及答案详解1套
- 2型糖尿病个体化治疗药物转换策略
- 国网浙江电力2026年度高校毕业生招聘1170人备考题库及一套参考答案详解
- 2025年大连海事大学公开招聘事业编制非教学科研人员23人(第一批)备考题库含答案详解
- 2025年河南实达国际人力资源合作有限公司招聘宋城产投劳务派遣人员备考题库有答案详解
- 2025年连山教师招聘29人备考题库完整参考答案详解
- 2025年上海大学诚聘法学院院长备考题库及答案详解参考
- 简约插画风深色年度晚会庆典
- 2025年榆林市住房公积金管理中心招聘(19人)备考笔试试题及答案解析
- 2025年金属非金属矿山(地下矿山)安全管理人员证考试题库含答案
- 2025秋苏教版(新教材)小学科学三年级上册知识点及期末测试卷及答案
- 2025年及未来5年中国非晶合金变压器市场深度分析及投资战略咨询报告
- 中文核心期刊论文模板(含基本格式和内容要求)
- 2024-2025学年云南省普通高中高二下学期期末学业水平合格性考试数学试卷
- GB/T 18213-2025低频电缆和电线无镀层和有镀层铜导体直流电阻计算导则
- 泰康人寿会计笔试题及答案
- 园林绿化养护项目投标书范本
- 烷基化装置操作工安全培训模拟考核试卷含答案
- 汽车租赁行业组织架构及岗位职责
评论
0/150
提交评论