已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
某企业局域网抓包软件的选择某企业局域网抓包软件的选择 摘摘 要要 随着网络技术的不断发展,社会进入了一个信息爆炸的时代,世界也由于 网络而变小,人们通过各种技术和工具使交流突破了空间的限制。在网络技术 发展与普及的同时,网络安全问题引起了人们的广泛关注。因此,研究并开发 出一种能够有效地实时捕获网络信息的系统具有极其重要的意义。基于这一情 况,本论文针对网络数据的捕获与数据包信息分析等问题进行了深入的探讨和 研究。本论文逐一介绍了信息捕获中的相关技术及需求分析,在系统设计中对 数据包捕获模块、解码数据包模块和数据库信息模块的实现进行了详细讲述。 通过运用 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 systems 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. Key words: WinPcap; data capture; information analysis ; LAN 目目 录录 论文总页数:25 页 1引言引言.1 1.1课题背景及意义.1 1.2本课题研究的相关技术及方法.1 1.3VISUAL C+ 6.0 .1 1.4WINPCAP简介.2 2基于基于信息捕获的相关理论基础信息捕获的相关理论基础.4 2.1数据封装与分用过程.4 2.2IP 协议.5 3需求分析需求分析.7 3.1功能需求.7 3.2性能要求.8 4局域网信息捕获器的设计局域网信息捕获器的设计.8 4.1功能概述.8 4.2系统功能模块的设计.9 4.2.1数据包捕获模块.9 4.2.2数据分析模块实现.11 4.2.3数据库模块的实现.14 4.3用户界面模块.17 5局域网信息捕获测试和测试结果局域网信息捕获测试和测试结果.18 5.1测试环境.18 5.2测试结果.18 结结 论论.20 参考文献参考文献.21 第 1 页 共 25 页 1 1 引言引言 1.11.1 课题背景及意义课题背景及意义 计算机网络的发展给计算机产业和整个人类的工作、生活方式带来了巨大 的变化,特别是信息技术的发展使一个信息缺乏的时代进入了一个信息爆炸的 时代,世界也由于Internet而变小。人们通过各种技术,工具使得交流突破了 空间的限制。全球范围内的网络互联给人们的生活和工作带来了方便,人们正 享受网络技术带给我们美好生活。但同时某些不法分子利用网络的漏洞非法入 侵他人的主机系统,有的利用网络盗取他人个人信息,如网上银行帐号密码等, 对他人财产安全造成了重大威胁。据有关资料统计我国每年通过计算网络进行 违法行为以30%的速度上升。面对计算机犯罪越来越多的趋势,及网络上日益泛 滥的信息垃圾和污染情况,我国政府未雨绸缪,已经制定了关于互联网络使用 的法律法规,网络安全问题已面临着重大挑战。 目前我国正在进行大规模的现代化经济建设,需要使用自己的网络和信息 安全系统来保护自己的网络和信息系统,尤其是对于全国性大型计算机网络而 言,必须将网络安全和信息安全放在非常重要的地位上,而从长远角度看,这 只能依靠我们自己解决。因此建立网络安全系统是我们现在迫切需求,这项工 作对我们来说具有重大的政治和经济意义面对这种形式研究并开发出一种能方 便有效的实时监视和捕获可疑网络信息的系统迫在眉睫。 随着信息化程度的提高,使我们从一个封闭的环境进入到一个开放的世界, 但我们所担心和关心的问题便是网络安全问题,也就是内部网络安全和外部网 络安全的问题。本课题正是针对这种情况和需求,对实时数据捕获与网络信息 监控提出系统设计方案,并对信息过滤和跟踪的方法和技术进行研究,这便是 我的论文研究的意义与目的。 1.21.2 本课题研究的本课题研究的相关技术及方法相关技术及方法 网络数据捕获技术是获取信息的关键技术,它通过监听技术,过滤技术获 取原始数据,根据TCP/IP分层理论进行层层拆解,提取相关协议中的信息。本 毕业设计主要通过使用Winpcap开发包,在VC+环境下编写出了一款简单的软件 对数据包信息按TCP协议类型、UDP协议类型和特定IP地址进行分类捕获,捕获 出所需要的敏感信息,并且将捕获出来的信息写入数据库。 1.31.3 VisualVisual C+C+ 6.06.0 Visual C+6.0 是微软公司推出的开发 Win32 应用程序(Windows 95/98/2000/XP/NT)的、面向对象的可视化集成工具。它的最大优点就是提供 了功能强大的 MFC 类库,MFC 是一个很大的 C+类层次结构,其中封装了大量的 第 2 页 共 25 页 类及其函数,很多 Windows 程序所共有的标准内容可以由 MFC 的类来提供,MFC 类为这些内容提供了用户接口的标准实现方法,程序员所要做的就是通过预定 义的接口把具体应用程序特有的东西填入这个轮廓,这将简化编程工作,大大 的减少程序员编写的代码数量,使编程工作变得更加轻松容易。 1.41.4 WinpcapWinpcap 简介简介 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提供,便于用户调用,功能更强大。程序员能随意使 第 3 页 共 25 页 用wpcap.dll,但只能在受限的环境中直接使用packet.dll. Wpcap.dll Application NPF Device Driver Packet.dllUser Level Kernel Level Network Packets 图 1 WINPCAP 结构图 总的说来,Packet.dll 直接映射了内核的调用。Wpcap.dll 提供了更加友 好、功能更加强大的函数调用。Winpcap 的具体结构图 1 所示: Winpcap 是用 NDIS(Windows 的通信协议程序(比如 TCP/IP)和网络设备驱 动器之间通信的规范)的,将自己注册为一个协议处理驱动。Wincap 的使用非 常方便,但是它有一个致命的缺陷就是只适用于共享式以太网络,对于交换式 网络下的数据则无能为力。经过测试,在使用交换机连接的局域网下,Wincap 只能监听到本网段内的数据,而对于来自其他网段的数据则无法监听,除非你 把 probe 接到交换机之前或者接到交换机的 console 口上,不过那样的弊端是 显而易见的,所以,Winpcap 的应用还是有局限性的。Winpcap 结构图如下: 图 2 NPF device driver 第 4 页 共 25 页 2 2 基于基于信息捕获的相关理论基础信息捕获的相关理论基础 2.12.1 数据封装与分用过程数据封装与分用过程 以用户用TCP协议传送数据为例,数据被送入协议栈中,然后逐个通过每一 层直到被当作一串比特流送入网络。然后逐个通过每一层直到被当作一串比特 流送入网络。其中每一层对收到的数据都要增加一些首部信息(有时还要增加 尾部信息)。TCP传给IP的数据单元称作TCP报文段或简称为TCP段(TCP segment)。IP传给网络接口层的数据单元称作IP数据报。通过以太网传输的比 特流称作帧(Frame)。这就是通常说的数据的封装过程,如图5所示。 图 5 数据进入协议栈时的封装过程 当目的主机收到一个以太网数据帧时,数据就开始从协议栈中由底向上升, 同时去掉各层协议加上的报文首部。每层协议盒都要去检查报文首部中的协议 标识,以确定接收数据的上层协议。这个过程称作分用(Demultiplexing), 图6显示了该过程是如何发生的。 第 5 页 共 25 页 图6 数据帧的分用过程 2.22.2 IPIP 协议协议 IP是TCP/IP协议族中最为核心的协议。所有的TCP、UDP、ICMP及IGMP数据 都以IP数据报格式传输。IP提供不可靠、无连接的数据报传送服务。IP数据报 的首部信息如图7: 图7 IP数据报格式及首部中的各字段 IPIP各域的含义如下: 版本:当前IP协议的版本号,本论文采用的版本号为4; 首部长度:以32bit为单位的包头长度; 第 6 页 共 25 页 服务类型:规定对本数据报的处理方式,比如优先权等; 总长:以Byte为单位的整个IP数据报长度; 标识:信源主机赋予每个IP数据报的唯一标识符号,用于控制分片及其重 组; 标志和片偏移:同样用于控制分片及其重组; 生存时间:设置本数据报的最大生存时间,以秒为单位; 协议:表示创建本IP数据报数据区数据的高层协议的类型,如TCP,UDP等; 头标校验和:用于保证头标数据的完整性; 源IP地址和目的IP地址:分别指发送本数据报的主机IP地址和接受本数据 报的主机的IP地址; 选项:用于控制和测试,是IP数据报中可选的部分,包含“源路径”、 “路径记录”、“时间戳”等几种类型。 TCPTCP协议是网络中应用最为广泛的协议,许多的应用层协议都是在建立在 TCP协议之上的。TCP首部的各字段如图8所示: IP 首部 TCP 首部 TCP 数据 IP 数据报 TCP 报文段 20 字节20 字节 图 8 TCP 数据在 IP 数据报中的封装 TCP协议头部信息如下: 源端口:发送端TCP端口号。 目的端口:接收端TCP端口号; 序号:指出段中数据在发送端数据流中的位置; 确认号:指出本机希望下一个接收的字节的序号; 头标长度:以32bit为单位的段头标长度,是针对变长的“选项”域设计的; 码位:指出段的目的与内容,不同的各码位置位有不同的含义; 窗口:用于通告接收端接收缓冲区的大小; 校验和:这是可选域,置0表示未选,全1表示校验和为伍 紧急指针:当码位的URG置位时,指出紧急指针的序号。 第 7 页 共 25 页 UDP协议是英文User Datagram Protocol的缩写,即用户数据报协议,主要 用来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统 在内的众多的客户/服务器模式的网络应用都需要使用UDP协议。UDP协议从问世 至今已经被使用了很多年,虽然其最初的光彩已经被一些类似协议所掩盖,但 是即使是在今天,UDP仍然不失为一项非常实用和可行的网络传输层协议。UDP 数据报各域的意义与TCP段中相应的域相同。只有校验和有些不同,除UDP数据 报本身外,它还覆盖一个附加的“伪头标”。这个伪头标来自于IP报头,包括: 源IP地址、信宿IP地址、协议类型、UDP长度及填充域。UDP首部的各字段图9所 示: 图 9 UDP 首部 3 3 需求分析需求分析 3.13.1 功能需求功能需求 随着个人计算机和互联网的普及,越来越多的人开始使用网络这个媒介来 发送,接收信息,计算机网络给人们生产和生活带来了巨大的便利。但是由于 网络是一个面向大众的开放系统,对数据信息的保密和系统的安全性考虑得并 不完备,存在着许多的安全隐患。而有的人,就利用这些隐患,通过网络来发 送一些包含色情,反动等不良内容的信息,达到扰乱正常社会秩序的目的。网 络的安全形势日趋严峻。因此,现在在 Internet 安全隐患中扮演重要角色之一 的网络数据抓包软件受到越来越大的关注。 本软件的设计就是为了达到基本的维护网络安全的作用,对网络上传输的 数据进行捕获,然后从中得到所有的网络数据包,并对其进行简单的分析操作。 在网络入侵取证系统中,对网络上传送的数据包进行有效的监听即捕获包是目 前取证的关键技术,只有进行高效的数据包捕获,网络管理员才能对所捕获的 数据进行一系列的分析,从而进行可靠的网络安全管理。 第 8 页 共 25 页 IP是TCP/IP协议族中最为核心的协议。所有的TCP、UDP、ICMP及IGMP数据 都以IP数据报格式传输。这些数据类型中又以TCP和UDP两种数据类型为多数。 所以本软件需要设计出按TCP协议类型和按UDP协议类型来过滤网络中的数据。 同时本软件还还应当具有一种过滤功能,那就是当我们知道某个IP地址发送的 数据包信息都是属于一些不良,反动等等内容的信息,那么,我们可以通过在 软件上输出这台主机IP地址,来过滤从这台主机上发送的所有TCP和UDP协议类 型的数据。从而达到信息过滤的要求。 3.23.2 性能要求性能要求 由于本设计是安装在个人电脑上,所以要求用户界面简洁,友好,方便使 用和操作。 网络上数据包的捕获是入侵检测系统的基础,关键是要保证高速的抓包和 低的丢包率。一方面,网络检测部分的数据源是网络上的数据包,需要经过捕 获后方可以提交给分析系统;另一方面,捕获数据包效率的高低直接影响着网 络探测部分的性能的好坏,如果发生丢包现象,则有可能丢掉的包就是攻击包。 在保证高速的抓包和低的丢包率的同时,要还要求程序能有较强的稳定性。 一款好的信息过滤软件,都是将在一个长时间工作的环境中运行。如果不能保 证较强的稳定性的话,那么软件对信息过滤的效率和功能有很大的局限性,对 数据信息过滤就是失败的。那么这款软件就不会具备同其他同类似软件的竞争 力,更不会有市场,那么它就注定成为一款失败的软件。 试想一下,假如,当用户使用这款软件时,软件占用了太多的系统资源而 导致用户对电脑的其他操作都很难进行,那么,谁还会用这款软件呢?所以, 该软件还应该具备一种特点就是:低的系统资源占用率。 4 4 局域网信息捕获器的设计局域网信息捕获器的设计 4.14.1 功能概述功能概述 通过前面的叙述可以知道,这款软件具有的功能,那就是:能够分别捕获 局域网中的 TCP 协议类型数据,UDP 协议类型数据和从某一特定的 IP 地址发送 出来的 TCP 协议类型数据和 UDP 协议数据类型。并且,将这些捕获出来的数据 包的基本信息存入到数据库中,提供给网络管理员使用和进一步的分析。 系统流程图如下图: 第 9 页 共 25 页 开始 捕获数 据 分析协 议类型 数据库 处理 结束 结束 YES YES NO NO 图 10 系统流程图 本系统包括三个基本模块,分别是数据包捕获模块,数据分析模块和数据 库模块。其中数据包捕获模块的功能是:利用 Winpcap 控件,通过网卡设备从 网络中捕获数据包;数据分析模块的功能是:主要实现数据的解析,从网络适 配器中捕获到的数据的为原始数据(raw data) ,这些原始数据为二进制格式, 必须转化为能比较好明白的格式,这就要求将这些原始数据能按照网络数据传 输的具体格式来保存,主要为了能较好的读懂相关的信息,以便使用者分析; 数据库模块的功能是:经过前两个模块处理后的数据,现在已经转化成了对我 们有用的信息了,而这些信息不可能一直让他存放在内存中,那么就需要在数 据库中建立相应的表,把这些信息存贮在这些数据库表的相应列名中,以便使 用者处理、使用。 4.24.2 系统功能模块的设计系统功能模块的设计 .1数据包数据包捕获模块捕获模块 数据包捕获模块主要用Winpcap软件实现,模块的设计思想遵循Winpcap捕 获数据包的流程,流程分三步:查找设备,打开设备和捕获数据的函数。利用 WinPcap结构提供的wpcap.dll来开发实现数据包捕获程序。流程图如下: 第 10 页 共 25 页 查找网卡设备 获取网卡设备 打开网卡设备 捕获网络数据包 结束 YES NO 开始 图11 数据捕获模块流程图 这里给出其主要过程: 先确定要在其上进行监测的网络适配器,得到现有的网络适配器的列表和 他们的描述,从而获得该NIC的相关信息。 if( pcap_findalldevs_ex(PCAP_SRC_IF_STRING,NULL, 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); 当网卡已打“打开”并且具体配置好后,就可以进入捕获了。考虑到系统 第 11 页 共 25 页 资料的占用等问题,利用了线程来解决此问题,捕获数据是新建一个线程,来 实现数据的捕获,再在线程中处理数据的解析和特征码的提取,其中 CreateThread 函数的参数 1 为指向SECURITY_ATTRIBUTES结构体的指针,参数 2 指定线程堆栈大小,参数 3 指定线程执行函数名称,参数 4 表示给新线程的 参数,参数 5 为线程指定的更多控制参数,参数 6 为新线 ID。代码如下 /这里创建一个线程来处理数据 LPDWORD ThID=NULL; m_handle=CreateThread(NULL,0,ThreadProc,this,0,ThID); if(m_handle=NULL) return ; /线程处理函数 DWORD WINAPI ThreadProc( LPVOID lpParameter ) CLjDlg * m_dlg = (CLjDlg *)lpParameter; struct pcap_pkthdr *header;/捕获数据包的头 const u_char *pkt_data; /指向常量的指针 int res; /pcap_next_ex 的返回值 m_dlg-SetDlgItemText(IDC_STATIC_TIP,线程开始捕获数据.); while(res=pcap_next_ex(m_dlg-adhandle, /处理捕获的数据包 m_dlg-SaveDate(header,pkt_data); return 1; .2 数据分析模块实现数据分析模块实现 数据分析模块的设计思想是将 Winpcap 捕获到的数据对应网络数据包的格 式进行初始化,取得具体的值。通过相关的转换函数得到相关的信息,具体的 函数原型如下:(相关格式见第二章) 第 12 页 共 25 页 void SaveDate(struct pcap_pkthdr * header , const u_char * pkt_data); 将网络中捕获的数据包进行格式化 数据分析模块的主要实现数据的解析。从网络适配器中捕获数据的为原始 数据(raw data) ,这些原始数据为二进制格式,必须转化为能比较好明白的格 式,这就要求将这些原始数据能按照网络数据传输的具体格式来保存,主要为 了能较好的读懂相关的信息,以便使用者分析。 其流程图如下: 捕获的数据包 分析以太网协 议 判断是否为 IP协议数据 分析IP协议数 据 判断是否是 TCP,UDP 协议类型字 段 分析TCP, UDP协议类型 数据包 传入数据库处 理模块 YES NO YES NO 图 12 数据包分析流程图 数据分析模块实现时,本系统提取的数据包中主要的一些信息,如 IP 数据 包中的 IP 地址,端口信息等。具体代码下: /数据包分析和保存 ipheader * ih; tcp* tcph; udp* udph; CString temp; int chang; 第 13 页 共 25 页 /时间 struct tm *ltime; ltime=localtime( strftime(timestr,sizeof(timestr),%H:%M:%S,ltime); /IP ih=(ipheader*)(pkt_data+14);/ip 头 int iplen=(ih-ver_ihl itoa(iplen,IPLength,10); sprintf(IPDateLength,%d,header-len);/IP 数据包长度 sprintf(TTL,%d,ih-ttl);/生存时间 sprintf(SIP,%d.%d.%d.%d,ih-saddr.byte1,ih-saddr.byte2,ih- saddr.byte3,ih-saddr.byte4); sprintf(DIP,%d.%d.%d.%d,ih-daddr.byte1,ih-daddr.byte2,ih- daddr.byte3,ih-daddr.byte4); u_short u_sport,u_dport; if(ih-proto = 6 ) /这里是 TCP 数据包 strcpy(proto,TCP); /协议类型 tcph=(tcp*)(u_char*)ih + iplen); u_sport = ntohs(tcph-sport); /源端口 u_dport = ntohs(tcph-dport); /目的端口 /sprintf(Sport,%d,tcph-sport); /源端口 /sprintf(Dport,%d,tcph-dport); /目的端口 chang = (tcph-other 0 x0fff) / 1024; sprintf(tcp_hLength,%d,chang); /TCP 首部长度 sprintf(date,%X,tcph-content); /TCP 数据 else if(ih-proto = 17) /这里是 UDP 数据包 strcpy(proto,UDP); udph=(udp*)(u_char*)ih + iplen); u_sport = ntohs(udph-sport); /源端口 u_dport = ntohs(udph-dport); /目的端口 /sprintf(Sport,%d,udph-sport); /源端口 第 14 页 共 25 页 /sprintf(Dport,%d,udph-dport); /目的端口 sprintf(udplength,%d,udph-len); /TCP 首部长度 sprintf(date,%X,udph-content); /TCP 数据 sprintf(Sport,%d,u_sport); /源端口 sprintf(Dport,%d,u_dport); /目的端口 AccessWrite(ih-proto); .3 数据库模块的实现数据库模块的实现 1把捕获到的数据包写入数据库中的操作: 相关数据信息捕获分析完毕后,接下来就是对数据的保存。本系统使用的 是 ado 数据库连接方式,ado 是 Microsoft 开发的一个连接数据库方式,由于本 系统的使用平台,开发环境都为 Microsoft 的软件,所以本系统使用 ado 方式。 连接数据库代码如下: try m_pConnection-Open(Provider=Microsoft.Jet.OLEDB.4.0;Data Source=lj.mdb,adModeUnknown);/连接数据库 catch(_com_error e)/捕捉异常 AfxMessageBox(数据库连接失败,确认数据库 lj.mdb 是否在当前路径 下!); return FALSE; return TRUE; 数据包信息写入数据库代码如下: AccessWrite(int Type) if(m_bOneIP)/指定 IP 地址模式 m_pRecordset.CreateInstance(_uuidof(Recordset); 第 15 页 共 25 页 m_pRecordset-Open(SELECT * FROM 目标 IP,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText); try m_pRecordset-AddNew(); m_pRecordset-PutCollect(时间, _variant_t(timestr); m_pRecordset-PutCollect(IP 首部长度, _variant_t(IPLength); m_pRecordset-PutCollect(IP 数据包长度, _variant_t(IPDateLength); m_pRecordset-PutCollect(生存时间, _variant_t(TTL); m_pRecordset-PutCollect(协议类型, _variant_t(proto); m_pRecordset-PutCollect(源 IP 地址, _variant_t(SIP); m_pRecordset-PutCollect(目的 IP 地址, _variant_t(DIP); m_pRecordset-PutCollect(源端口, _variant_t(Sport); m_pRecordset-PutCollect(目的端口, _variant_t(Dport); m_pRecordset-Update(); catch(_com_error *e) AfxMessageBox(e-ErrorMessage(); return ; 2查看写入到数据库中的数据包: m_pRecordset.CreateInstance(_uuidof(Recordset); m_list.DeleteAllItems(); if(fangshi.Compare(TCP 表单)=0) m_list.GetColumn(10, pColumn.pszText = TCP 首部长度; m_list.SetColumn(10, 第 16 页 共 25 页 m_list.GetColumn(11, pColumn.pszText = TCP 数据; m_list.SetColumn(11, try m_pRecordset-Open(SELECT * FROM TCP, m_pConnection.GetInterfacePtr(), / 获取库接库的 IDispatch 指针 adOpenDynamic, adLockOptimistic, adCmdText); catch(_com_error *e) AfxMessageBox(e-ErrorMessage(); return; /读取数据 try if(!m_pRecordset-BOF) m_pRecordset-MoveFirst(); else AfxMessageBox(表内数据为空.); return; / 读入库中各字段并加入列表框中 while(!m_pRecordset-rsEOF) var = m_pRecordset-GetCollect(编号); if(var.vt != VT_NULL) str= _com_util:ConvertBSTRToString(_bstr_t)var);/_variant_t 转字符串 第 17 页 共 25 页 m_list.InsertItem(num-1,str); m_list.SetItemText(num-1,0,str); 4.34.3 用户界面模块用户界面模块 根据上面三个模块的分析,直接与用户相关联的操作有:为 Winpcap 指定 一个具体的网络适配器,选择需要过滤的数据类型或者想要过滤的特定 IP 地址 发送的 TCP 和 UDP 信息。 在为 Winpcap 指定一个具体的网络适配器方面,有几种方式可以实现。1. 通过 EDIT 控件让用户输入具体的网卡设备。2.新建一个下拉列表框,让用户选 择具体的网卡设备。考虑到用户使用群的方便、简洁,同时 Winpcap 提供了查 找网络设备的函数,故选择了第二种方式来实现本功能。 在为程序指定具体的捕获方式时,在程序中分别设置了三个 BOOL 型变量来 分别控制所选中的状态。通过 BOOL 型变量来控制程序分析数据报方式。当选中 IP 这个单选框是,需要用户手动输入需要捕获的源 IP 地址。 具体界面如下: 图 13 主界面外观 用户界面第一行为软件找网卡设备,设计成的是一个下拉列表,能够把找 到的网卡信息都列出来。默认选中列表第一项。 第二列为 3 个可选择框,它们是 TCP,UDP 和 IP。分别对应的是按 TCP 协 议类型,UDP 协议类型和特定 IP 地址来捕获数据信息。其中,IP 地址这一栏, 默认的是本地主机的 IP 地址。3 种过滤类型中默认选中的是 TCP 类型。 最后一列是 4 个按钮。分别是开始,停止,显示数据和退出。单击开始按 钮,系统开始执行捕获相应的数据包信息,显示捕获数据包的个数,并且将捕 获出来的信息写入 ACCESS 数据库;单击停止按钮,系统停止捕获数据包信息, 第 18 页 共 25 页 并且断开与数据库的连接;单击显示数据按钮,会弹出一个消息框,消息框里 有一个下拉列表,可以选择用户想要查看的数据库中的 3 张不同的表单,选中 其中一项,会将
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年低空经济产业集群创新实践研究报告
- 2026-2031中国枸杞市场行情动态报告
- 建筑与房地产经济高级经济实务经济师考试试卷及答案2025年
- 2025年一级技师老式试题及答案
- 2025年急救理论试题及答案
- 2025年国企管理人员能力测评试卷及答案
- 2025年医学影像技术临床应用及异常表现分析模拟试卷及答案解析
- 2025年专业技术人员继续教育公需科目考试试题(带答案)
- 2025年公路水运工程试验检测人员应试题及答案
- 社区工作者招聘考试公共基础知识真题及答案
- 骨科博士入学试题集(含答案)
- 水利公司市场开拓计划管理规定
- 《无人机复合材料结构设计与制造技术》全套教学课件
- 水域救援理论讲解
- 2025至2030年中国石墨润滑剂市场现状分析及前景预测报告
- 中国资本运作投资行业管理办法
- 材料员岗位面试问题及答案
- 弹性力学基础(程尧舜-同济大学出版社)课后习题解答
- (高清版)DB11∕T 509-2025 房屋建筑修缮工程定案和施工质量验收规程
- 心理干预资源公平性研究-洞察及研究
- 2025年新疆维吾尔自治区公务员录用考试公安专业科目试卷
评论
0/150
提交评论