优秀的毕业设计论文网
计算机 JAVA 电子信息 单片机 机械机电 模具 土木工程 建筑结构 论文
热门搜索词:网络 ASP.NET 汽车 电气 数控 PLC

DELPHI下基于winpCap的网络数据捕获与分析

以下是资料介绍,如需要完整的请充值下载.
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
  
资料介绍:
摘??? 要 随着网络技术的飞速发展,网络安全问题变得日益严重,对网络安全的研究也越来越重要。作为网络安全领域中重要的一项技术——网络数据包的分析,是其它网络管理的最核心的技术手段之一。而要完整地分析一个网络数据包,必须是在完整捕获当前的数据包的基础上完成。 本课题就是沿着网络数据包的捕获展开研究,对各类网络协议进行了较为深入的学习和研究,对基本WIN32平台下的网络数据包捕获原理及winPcap的技术特点、应用范围作了一定的讨论。 课题在winPcap研究的基础上,实现了DELPHI下的驱动winpcap的核心单元,并且提出一个捕获数据的基本例程。为今后进一步进行网络数据分析做了稳固的基础工作。 关键词:网络捕获 WINPCAP ?DELPHI 1.1.1??????? 网络监听与包过滤实施方法及其关键步骤 一、 最简单的监听程序模型 最简单的监听程序包括内核部分和用户分析部分.其中内核部分负责从网络中捕获和过滤数据.用户分析部分负责界面、数据转化与处理、格式化、协议分析,如果在内核没有过滤数据包,在这里还要对数据进行过滤。 一个较为完整的基于网络监听和过滤的程序一般包括以下步骤:数据包捕获、数据包过滤与分解、数据分析。 二、数据包捕获 常用的方法有两种: 1、通过设置硬路由器的监听端口; 2、利用以太网络的广播特性.这种方式必须将网卡设置为混杂(promiscuous)模式.监听程序工作在网络环境的底三层,可以拦截所有经过该机器的网络上传送的数据,然后将这些数据做相应处理,可以实时分析这些数据的内容,进而分析网络当前状态和整体布局.UNIX类操作系统所提供的分组捕获机制主要有以下三种:(1)数据链路提供者接口DLPI(Data Link Provider Interface);(2)Linux的SOCK_PACKET类型套接口;(3)伯克利数据包过滤器BPF(Berkeley Packet Filter).对于windows系统(要求在window2000/xp以上),要实现数据链路层上的数据捕获需要使用驱动程序.网络驱动程序接口规范函数库(NDIS函数库)为了方便用户对网络底层的操作,提供了许多相关函数.基于windows的数据包捕获方案有以下几种: (1)??使用原始套接字(row socket)机制.方法简单,但功能有限,只能捕获较高层的数据包.在创建了原始套接字后,需要通过setsockopt()函数来设置IP头操作选项,然后再通过bind()函数将原始套接字绑定到本地网卡.为了让原始套接字能接受所有的数据,还需要通过ioctlsocket()来进行设置,而且还可以指定是否亲自处理IP头.至此,实际就可以开始对网络数据包进行监听了,对数据包的获取仍象流式套接字或数据报套接字那样通过recv()函数来完成.但是与其他两种套接字不同的是,原始套接字此时捕获到的数据包并不仅仅是单纯的数据信息,而是包含有 IP头、 TCP头等信息头的最原始的数据信息,这些信息保留了它在网络传输时的原貌.通过对这些在低层传输的原始信息的分析可以得到有关网络的一些信息.由于这些数据经过了网络层和传输层的打包,因此需要根据其附加的帧头对数据包进行分析; 3、?直接连接调用NDIS库函数,这种方法功能非常强大,但是比较危险,很可能导致系统崩溃和网络瘫痪; 4、??使用或者自行编写中间层驱动程序,这是微软公司推荐使用的一种方法,微软提供的win2000 DDK中也提供了几个这样的驱动程序.在具体的实现方式上可分为用户级和内核级两类.其中内核级主要是TDI捕获过滤驱动程序,NDIS中间层捕获过滤驱动程序,NDIS捕获过滤钩子驱动程序等,它们都是利用网络驱动来实现的;而用户级的包括SPI接口,Windows2000包捕获过滤接口等; 5、??使用第三方捕获组件或者库,比如Winpcap. 三、数据包过滤与分解 捕获数据包后要进行的工作是对其进行包过滤与分解,用通俗的语言表达就是在海量的数据里面找我们感兴趣的内容.关于此部分的研究很多[1,5].不好的过滤规则和程序会导致数据包丢失、来不及分析,严重的影响系统的工作效率,甚至导致系统崩溃.一些基础的过滤规则如下: (1)站过滤:专门筛选出来自一台主机或者服务器的数据; (2)协议过滤:根据不同的协议来筛选数据,例如:选择TCP数据而非UDP数据; (3)服务过滤:根据端口号来选择特定数据包; (4)通用过滤:通过数据包中某一特定位置开始,选择具有某些共同数据特征的数据包; 大部分情况下,我们的过滤规则是上面基本规则的组合.有时,为了保证我们设置的缓冲区被一些莫名其妙的无效数据溢出,我们必须在捕获前进行粗过滤,然后在捕获后再进行一次过滤,然后进行分析. 过滤完成后,为了使得我们的缓冲区能处理的包更多,我们必须进行包分解(Slice),因为数据包最关键的部分在数据包的头部.即使要分析整个包,包分解的过程还是要的,不过我们得记住包的原始长度.包分解的原则是对捕获的包按照相应协议规定的数据结构来提取结构中每个字段的数据。 ?四、数据分析 这一部分就是对已经捕获的数据包进行各种分析,比如网络流量分析,数据包中信息分析,敏感信息提取分析等,其功能取决于系统要达到的目的