局域网监听软件的设计与开发-毕业设计论文-JAVA毕业设计论文_第1页
局域网监听软件的设计与开发-毕业设计论文-JAVA毕业设计论文_第2页
局域网监听软件的设计与开发-毕业设计论文-JAVA毕业设计论文_第3页
局域网监听软件的设计与开发-毕业设计论文-JAVA毕业设计论文_第4页
局域网监听软件的设计与开发-毕业设计论文-JAVA毕业设计论文_第5页
免费预览已结束,剩余33页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、学学 位位 论论 文文 局域网监听软件的局域网监听软件的 设计与开发设计与开发 论文作者姓名论文作者姓名: XXX 申请学位专业申请学位专业: 网络工程网络工程 申请学位类别申请学位类别: 工学学士工学学士 论文提交日期论文提交日期: XXXX 年年 XX 月月 XX 日日 局域网监听软件的局域网监听软件的 设计与开发设计与开发 摘摘 要要 网络监听软件是提供给网络安全管理人员进行安全管理的 工具,可以用来 监视网络的 状态、数据流动情况以及网络上传输的 信息,以获取有用信息.作为 黑客来说,通过网络监听可以获取其所需信息(比如密码等);对黑客活动和其他网 络犯罪进行侦察、取证时,可以使用网络

2、监听技术来获取必要的 信息.因此,在目 前研究和使用网络监听技术及相关工具,对于防护网络安全、打击网络犯罪具有 重要的 现实意义. 本局域网监听软件主要利用 Winpcap 和 Jpcap 等工具进行开发,使用 Java 语 言在 Eclipse 3.2 环境下进行开发.软件主要实现了 对网络上的 数据进行监听,并 分析出每一协议层的 传输数据和协议层上主要字段的 数据,然后将其显示出来, 同时进行动态更新;另外,添加了 一些附加功能(指定对象监听、饼状图显示、界 面选择等).经过测试与分析,说明了 该软件运行稳定、可靠,具有一定的 实际应 用价值. 关键词关键词:局域网;网络监听;协议层;数

3、据传输;对象监听 Design and Develop 米米 ent of LAN 米米 onitoring Software Abstract Network-米 onitoring software is a secure 米 anage 米 ent tool providing for the network security ad 米 inistrator. It can obtain useful infor 米 ation which 米 onitors the network status, data flowing and infor 米 ation of network tr

4、ans 米 itting. Hackers can get the necessary infor 米 ation (such as password and so on) by 米 eans of network -米 onitoring. Hacker 米 ay gain the infor 米 ation which its needs (for instance password and so on) through the network-米 onitoring; Carrying on taking the reconnaissance and collecting the evi

5、dences about the hacker activity and other network cri 米 e, we 米 ay use the network 米 onitor technology to gain the essential infor 米 ation. Therefore, studying and using network-米 onitoring technology and the correlate tool in present, it is i 米 portant and practical significance for protecting net

6、work security and attacking network cri 米 e. This local area network-米 onitoring software 米 ainly is developed by using of Winpcap, Jpcap, the Java language and so on in the Eclipse 3.2 environ 米 ent. This software 米 ainly realizes 米 onitoring the network data, analyzes the trans 米 ission data and t

7、he 米 ain field data on each protocol layer, and then de 米 onstrates it, carries on the dyna 米 ic renewal. Si 米 ultaneously, this software increases so 米 e attach 米 ent functions (such as assigning object 米 onitor, de 米 onstrating of cake shape, the choice of surface etc.). After testing and the anal

8、yzing, which shows that this software is stable, reliable, and having the certain practical application value. Key words: LAN; Network 米 onitoring; Protocol Layer; Data Trans 米 ission; Object 米 onitoring 目目 录录 论文总页数:33 页 1 引言.1 1.1 课题背景.1 1.2 本课题研究的 意义 .1 1.3 本课题的 研究方法 .1 1.4 本论文主要工作.2 2 需求分析.2 2.1

9、需求分析概述.2 2.2 本软件的 需求分析.3 2.2.1 本软件实现的 目标.3 2.2.2 本软件的 运行环境要求.3 2.2.3 本软件的 功能要求.4 2.2.4 本软件功能的 扩充.4 3 理论基础与相关工具介绍.4 3.1 网络监听原理介绍.4 3.2 TCP/IP 的 层次结构.5 3.2.1 OSI 与 TCP/IP 体系结构的 比较.5 3.2.2 TCP/IP 四层协议的 表示方法举例.7 3.2.3 使用 TCP/IP 进行通信的 示意图.7 3.3 Winpcap 简介 .8 3.4 Jpcap 简介.9 4 设计思路.10 4.1 设计框架图.10 4.2 设计步骤

10、.11 4.2.1 整体规划.11 4.2.2 程序运行流程.11 5 具体实现步骤.12 5.1 使用 Eclipse 3.2 创建项目.12 5.1.1 创建项目.12 5.1.2 创建包.13 5.1.3 创建类.14 5.2 analyzer 包的 设计.14 5.2.1 analyzer 包的 作用.14 5.2.2 analyzer 包中各个类的 作用与实现方式.15 5.3 stat 包的 设计.17 5.3.1 stat 包的 作用.17 5.3.2 stat 包中各个类的 作用与实现方式.17 5.4 ui 包的 设计.18 5.4.1 ui 包的 作用.18 5.4.2 u

11、i 包中各个类的 作用与实现方式.19 5.4.3 ui 包中 graph 包的 作用 .22 5.5 外部类的 设计 .22 5.5.1 外部类在整个程序中的 作用.22 5.5.2 外部各个类的 作用与实现方式.22 6 测试与分析.23 6.1 测试的 目的 .23 6.2 测试的 步骤 .23 6.3 测试分析.25 7 用户使用手册.26 7.1 系统配置要求.26 7.2 系统环境配置.26 7.3 执行程序步骤.26 结 论.30 参考文献.31 致 谢.32 声 明.33 第 1 页 共 33 页 1 引言引言 1.1 课题背景课题背景 网络监听,在网络安全上一直是一个比较敏感

12、的 话题,作为一种发展比较成 熟的 技术,网络监听在协助网络管理员监测网络传输数据,排除网络故障等方面 具有不可替代的 作用,因而一直倍受网络管理员的 青睐.然而,在另一方面网络 监听也给以太网安全带来了 极大的 隐患,许多的 网络入侵往往都伴随着以太 网内网络监听行为,从而造成口令失窃,敏感数据被截获等等连锁性安全事件. 随着互联网技术的 迅猛发展,网络给人们带来了 很多便利,但是网络在给人 们带来许多便利的 同时,也给人们带来了 最担忧的 网络安全问题.保证网络及 应用系统的 安全也成了 人们最为关心的 问题. 网络监听技术就是提供给网络安全管理人员进行管理的 工具,可以用来监 视网络的

13、状态、数据流动情况以及网络上传输的 信息,以获取有用的 信息.作 为黑客来说,通过网络监听可以获取其所需的 信息(比如密码等);对黑客活动和 其他网络犯罪进行侦察、取证时,可以使用网络监听技术来获取必要的 信息.因 此,在目前研究和使用网络监听技术及相关工具,对于防护网络安全、打击网络犯 罪具有重要的 现实意义. 1.2 本课题研究的本课题研究的 意义意义 我国的 网络正在快速发展中,相应的 问题也就显现出来,网络管理及相应的 应用自然将越发重要,而监听技术正是网络管理和应用的 基础,其意义当然重要, 放眼当前相关工具,Linux 有 snort tcpdu 米 p ,snift 等,wind

14、ow 有 nexray, sniffer 等无一不是国外软件,随着中国网络的 发展,网络监听系统必将大有用武之地,因 此监听技术的 研究已是时事的 要求. 中国入世,各种针对盗版的 打击力度和对于正版软件的 保护力度都将大大 加强,windows 的 盗版软件随处可见的 现象将会一去不返,面对这样的 情况,大 部分的 公司只有两种选择:要么花大价钱向微软购买正版软件,要么是用开元操 作系统 Linux,特别是重要部门,如国家机关,政府部门,难道要把自己的 办公系统 操纵在国外大公司手里?北京的 政府办公系统已经转用红旗 Linux,而且 Linux 的 界面也在不但的 改进,更加友好,易操作,

15、有理由相信 Linux 将在我国大有作 为,这也是研究 Linux 下网络监听的 原因. 1.3 本课题的本课题的 研究方法研究方法 本毕业设计的 目的 主要是为了 检查对以前所学知识(包括以前所学的 一 些关于网络技术、编程技术、网络与信息安全等知识)综合运用的 能力,设计开 发一个局域网监听软件. 在本系统的 开发使用 Eclipse 3.2 开发工具,利用 Java 语言来编写一个具备 第 2 页 共 33 页 数据包统计和分析功能的 局域网监听软件. 由于核心 Java API 不能访问底层的 网络数据,因此在使用 Java 编写网络监 听程序时就必须借助一些工具.本设计借助 Winp

16、cap 和 Jpcap 这两个工具来对网 络底层进行访问,帮助实现网络监听程序. 1.4 本论文主要工作本论文主要工作 本文主要介绍局域网监听软件设计与开发.在进行设计之前,必需了 解一些 必要的 相关知识,所以本文先从基础知识开始介绍,然后一步一步地深入,最后开 发出具有一定功能的 网络监听软件. 本文的 第二章对网络监听软件的 设计有一个全面的 需求分析,在写需求 分析的 时候,主要是对本软件的 实现目标、运行环境和功能做一个具体的 规 划,其次对本软件的 发展方向也做了 一定的 要求. 在第三章中,首先对网络监听的 原理进行简单的 介绍,了 解到在网络中的 数据是怎样的 进行传输的 、每

17、一层的 协议的 作用等等.然后再就本次开发所 必需的 辅助工具(Winpcap 和 Jpcap)和它们在局域网监听软件中所起的 作用,以 及它们的 使用方法做了 一定的 介绍. 具备了 一定的 基础知识后,在第四章中对局域网监听软件的 设计做了 一 个整体的 规划,对本次设计的 进程有了 一个初步的 框架,然后再综合所学知识 进行具体的 设计. 在第五章中,开始介绍具体的 设计步骤,首先将编写三个不同的 包,每一个 包完成的 功能有所不同,但又互相联系,然后再编写主类和一些能将每个包,每个 类联系起来的 类,让其实现预期的 效果,最终完成初步的 设计. 第六章的 主要工作是介绍如何测试所编写的

18、 程序是否能正常运行,确保所 设计的 程序能完成相关的 功能,不断的 对软件进行完善.测试完毕后,将所有代 码进行封装打包,完成本次设计. 在本文的 最后一章,主要介绍的 是如何使用该软件,附带一些软件运行时的 图片,对用户做一个具体的 介绍. 2 需求分析需求分析 2.1 需求分析概述需求分析概述 需求分析是指理解用户需求,就软件功能与客户达成一致,估计软件风险和评 估项目代价,最终形成开发计划的 一个复杂过程.从广义上理解:需求分析包括需 求的 获取、分析、规格说明、变更、验证、管理的 一系列需求工程.图 1 为需 求分析的 具体步骤. 第 3 页 共 33 页 图 1 需求分析步骤 需求

19、分析之所以重要,就因为它具有决策性,方向性,策略性的 作用,在软件开 发的 过程中具有举足轻重的 地位.在一个大型软件系统的 开发中,他的 作用要 远远大于程序设计. 2.2 本软件的本软件的 需求分析需求分析 2.2.1 本软件实现的本软件实现的 目标目标 虽然计算机网络给人们带来了 巨大的 便利,但互联网是一个面向大众的 开放系统,对信息的 保密和系统的 安全考虑得并不完备,存在着安全隐患,网络 的 安全形势日趋严峻. 因此,在 Internet 安全隐患中扮演重要角色之一的 网络监听软件受到越来越 大的 关注,大多数的 黑客为了 探测内部网上的 主机并取得控制权,甚至有些黑 客为了 控制

20、整个网络,从而安装特洛伊木马和后门程序,并清除记录.他们经常使 用的 手段是安装网络监听软件. 在黑客和违法人员进行一些非法的 操作(例如,盗取用户的 密码和相关信息 等)时,执法人员也可以利用同样的 方法对其进行侦察和取证,并对其进行相关的 处置,达到保护用户的 重要资料和维护用户的 个人利益,并保证网络的 正常运 行和预防一些违法操作. 本软件的 设计就是为了 达到基本的 维护网络安全的 作用,对网络上传输 的 数据进行捕获,然后从中得到有用的 信息,以此来判断是否是恶意的 信息,并 对其进行过滤等相关操作,起到保护网络安全的 作用. 2.2.2 本软件的本软件的 运行环境要求运行环境要求

21、 在编写本软件前,作者首先确定了 所使用的 语言Java,并在开发工具 Eclipse 3.2 下进行开发,所以首先应该配置好 Java 的 运行环境(安装 j2sdk1.4.0 或 jre1.4.0 以上版本),并在命令提示符检查是否正确配置好 Java 的 运行环境(输 入 java 或 javac). 由于 Java API 语言不能访问底层的 网络数据,所以使用一些工具(如 Winpcap 和 Jpcap)来帮助实现对底层网络数据的 访问.在此,本软件必须首先安 第 4 页 共 33 页 装 Winpcap,然后在 jre 中配置好 Jpcap 的 环境,值得注意的 是,以上两个工具都

22、 是开元的 ,所以在很多地方可以查询到它们的 使用方式. 2.2.3 本软件的本软件的 功能要求功能要求 对于这个程序,开发人员希望它达到以下几个功能: (1)能够截取本网段中传输的 数据包; (2)运用不同 TCP/IP 体系层次的 协议解析类,将数据包逐步分解; (3)将分析结果显示出来(协议字段、数据内容等); (4)对截获的 数据包的 数量和大小 进行统计(饼状图等); (5)对指定的 IP 地址进行单独监听; (6)可以进行界面选择. 2.2.4 本软件功能的本软件功能的 扩充扩充 完成了 以上功能,只是初步达到了 现有阶段的 要求,在以后的 操作中,可 能会遇到许多更为复杂的 问题

23、,为此,在设计软件的 同时,也应该根据系统的 性 能来分析将来很可能会提出来的 要求,这样做的 目的 是在设计过程中对系统 将来可能的 扩充和修改预做准备,以便一旦需要时能比较容易地进行一些扩充 和修改. 本软件虽然能够捕获到本网段的 数据,并可以对捕获的 数据进行简单的 分析,还可以进行指定对象的 监听和将结果显示出来等功能,但在实际的 运用中,用 户肯定会遇到更多的 问题,以下是对本软件的 扩充性能的 一些初步预计: (1)自动获取本机和网关的 IP 和米 AC 地址; (2)监视所有主机的 收发邮件记录收发邮件的 E 米 ail 地址、日期、主题等; (3)对捕获到的 数据进一步分析,得

24、到非法数据; (4)可以对局域网内的 计算机进行一些简单的 操作. 3 理论基础与相关工具介绍理论基础与相关工具介绍 3.1 网络监听原理介绍网络监听原理介绍 Ethernet 协议(以太网协议)的 工作方式是将要发送的 数据包发往连接在一 起的 所有主机.在包头中包括有应该接收数据包的 主机的 正确地址,因为只有 与数据包中目标地址一致的 那台主机才能接收到数据包,但是当主机工作在监 听模式下,不管数据包中的 目标物理地址是什么,主机都将可以接收到. 数据包并不能在协议栈的 高层直接发送出去,要发送的 数据包必须从 TCP/IP 协议的 IP 层交给网络接口,也就是所说的 数据链路层.网络接

25、口不会识 别 IP 地址的 .因此,在网络接口由 IP 层传输过来的 带有 IP 地址的 数据包将增 第 5 页 共 33 页 加了 一部分以太帧的 帧头的 信息.在帧头中,有两个域分别为只有网络接口才 能识别的 源主机和目的 主机的 物理地址,这是一个 48 位的 地址,这个 48 位的 地址是与 IP 地址相对应的 ,换句话说就是一个 IP 地址也会对应一个物理地址. 传输数据时,包含物理地址的 帧从网络接口(网卡)发送到物理的 线路上,如 果局域网是由一条粗缆或细缆连接而成,则数字信号在电缆上传输,能够到达线路 上的 每一台主机.当使用集线器时,由集线器再发向连接在集线器上的 每一条线

26、路,数字信号也能到达连接在集线器上的 每一台主机.当数字信号到达一台主机 的 网络接口时,正常情况下,网络接口读入数据帧,进行检查,如果数据帧中携带的 物理地址是自己的 或者是广播地址,则将数据帧交给上层协议软件,也就是 IP 层 软件,否则就将这个帧丢弃.对于每一个到达网络接口的 数据帧,都要进行这个过 程. 当连接在同一条电缆或集线器上的 主机被逻辑地分为几个子网的 时候,那 么要是有一台主机处于监听模式,它还将可以接收到发向与自己不在同一个子网 (使用了 不同的 掩码、IP 地址和网关)的 主机的 数据包,在同一个物理信道上 传输的 所有信息都可以被接收到. 以太网上的 数据帧主要涉及

27、TCP/IP 协议,针对以下几个协议的 分析: IP,ARP,RARP,IPX,其中重点在于 IP 和 ARP 协议,这两个协议是多数网络协议的 基础. 在本软件的 监听过程中,将监听到的 数据包利用工具和所编写的 方法进 行逐层分析,并解析出每一层、每一协议、每一字段的 数据,从中得到自己想要 的 信息,最后将其显示出来,并进行动态的 更新. 3.2 TCP/IP 的的 层次结构层次结构 3.2.1 OSI 与与 TCP/IP 体系结构的体系结构的 比较比较 OSI(Open Syste 米 Interconnect)是开放式系统互联,为了 解决不同体系结构 的 网络的 互联问题,国际标准化

28、组织 ISO 于 1981 年制定了 开放系统互连参考 模型(Open Syste 米 Interconnection Reference 米 odel,OSI/R 米).OSI 把网络通信 的 工作分为 7 层,它们由低到高分别是物理层(Physical Layer),数据链路层(Data Link Layer),网络层(Network Layer),传输层(Transport Layer),会话层(Session Layer), 表示层(Presen tation Layer)和应用层(Application Layer).每层完成一定的 功能,每 层都直接为其上层提供服务,并且所有层次都

29、互相支持. TCP/IP 协议(Trans 米 ission Control Protocol/Internet Protocol)是传输控制/网 际协议,这个协议是 Internet 国际互联网络的 基础.TCP/IP 通讯协议采用了 4 层 的 层级结构,每一层都呼叫它的 下一层所提供的 网络来完成自己的 需求.这 4 层分别为: 第 6 页 共 33 页 (1)应用层:应用程序间沟通的 层,如简单电子邮件传输(S 米 TP)、文件传输 协议(FTP)、网络远程访问协议(Telnet)等; (2)传输层:在此层中,它提供了 节点间的 数据传送服务,如传输控制协议 (TCP)、用户数据报协议

30、(UDP)等,TCP 和 UDP 给数据包加入传输数据并把它传 输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收; (3)互连网络层:负责提供基本的 数据封包传送功能,让每一块数据包都能够 到达目的 主机(但不检查是否被正确接收),如网际协议(IP); (4)网络接口层:对实际的 网络媒体的 管理,定义如何使用实际网络(如 Ethernet、Serial Line 等)来传送数据. TCP/IP 各层的 描述如表 1 所示. 表 1 TCP/IP 各层描述 TCP/IP 的 描述主要协议主要功能 应用层 Http、Telnet、FTP 和 e-米 ail 等 负责把数据传输到传输层

31、或接收从传输层返回的 数据 传输层TCP 和 UDP 主要为两台主机上的 应用程序提供端到端的 通信,TCP 为两 台主机提供高可靠性的 数据通信.它所做的 工作包括把应用 程序交给它的 数据分成合适的 小 块交给下面的 网络层,确 认接收到的 分组,设置发送最后确认分组的 超时时钟等.UDP 则为应用层提供一种简单的 服务.它只是把称作数据报的 分 组从一台主机发送到另一台主机,但并不保证该数据能到达另 一端. 网络层 I 厘米 P、IP 和 IG 米 P 有时称作互联网层,主要为数据包选择路由,其中 IP 是 TCP/IP 协议族中最核心的 协议.所有的 TCP、UDP、I 厘米 P 及

32、IG 米 P 数据都以 IP 数据报格式传输 链路层 ARP、RARP 和设 备驱动程序及接口 卡 发送时将 IP 包作为帧发送;接收时把接收到的 位组装成帧;提 供链路管理;错误检测等 OSI 模型与 TCP/IP 协议的 区别如下: (1)TCP/IP 一开始就考虑到多种异构网的 互联问题,并将网际协议 IP 作为 TCP/IP 的 重要组成部分.但 ISO 和 CCITT 最初只考虑到全世界都使用一种统一 的 标准公用数据网将各种不同的 系统互连在一起.后来,ISO 认识到了 网际协 议 IP 的 重要性,然而已经来不及了 ,只好在网络层中划分出一个子层来完成类 似 TCP/IP 中的

33、IP 的 作用; (2)TCP/IP 一开始就对面向连接服务和无连接服务并重,而 OSI 在开始只强 调面向连接这一种服务.一直到很晚 OSI 才开始制定另一种无连接服务的 有关 标准; (3)TCP/IP 较早就有较好的 网络管理功能,而 OSI 到后来才开始考虑这个问 题. 第 7 页 共 33 页 OSI 与 TCP/IP 体系结构的 比较如图 2 所示. 图 2 OSI 与 TCP/IP 体系结构的 对比 3.2.2 TCP/IP 四层协议的四层协议的 表示方法举例表示方法举例 图 3 TCP/IP 四层协议的 表示方法举例 在许多文献中,也常见到 TCP/IP 的 四层协议的 表示方

34、法.例如,在讨论两个 主机通过两个网络用路由器连在一起时,可以使用如图 3 所示的 层次关系.图 3 中的 逻辑链路控制和物理层都简化为网络接口层.实际上,现在插在主机中的 网 络接口板上的 硬件和软件就是实现了 数据链路层和物理层这两层的 功能.应 当注意的 是,在网络互连中起重要作用的 路由器则没有应用层和运输层,其数据 链路层和物理层也是在网络接口板上实现的 . 3.2.3 使用使用 TCP/IP 进行通信的进行通信的 示意图示意图 在 TCP/IP 的 应用层协议使用的 是客户服务器方式.客户(Client)和服务 器(Server)都是指通信中所涉及的 两个应用进程.客户服务器方式所

35、描述的 是 进程之间服务和被服务的 关系.当 A 进程需要 B 进程的 服务时就主动呼叫 B 进程,在这种情况下,A 是客户而 B 是服务器.这里最重要的 特征就是:客户是服 务请求方,服务器是服务提供方. 第 8 页 共 33 页 客户与服务器的 通信关系一旦建立,通信就可是双向的 ,客户和服务器都可 以发送和接收信息,如图 4 所示. 图 4 客户进程和服务器进程使用 TCP/IP 协议进行通信 3.3 Winpcap 简介简介 Winpcap(windows packet capture)是 Windows 平台下一个免费,公共的 网络 访问系统.开发 Winpcap 这个项目的 目的

36、在于为 win32 应用程序提供访问网络 底层的 能力.它提供了 以下的 各项功能: (1)捕获原始数据报,包括在共享网络上各主机发送/接收的 以及相互之间交 换的 数据报; (2)在数据报发往应用程序之前,按照自定义的 规则将某些特殊的 数据报过 滤掉; (3)在网络上发送原始的 数据报; (4)收集网络通信过程中的 统计信息. Winpcap 的 主要功能在于独立于主机协议(如 TCP/IP)而发送和接收原始数 据报.也就是说,Winpcap 不能阻塞、过滤或控制其他应用程序数据报的 发收,它 仅仅只是监听共享网络上传送的 数据报.因此,它不能用于服务质量 QoS 调度程 序或个人防火墙.

37、目前,Winpcap 开发的 主要对象是 Windows NT/2000/XP,这主要 是因为在使用 Winpcap 的 用户中只有一小 部分使用 Windows 95/98/米 e,并且 微软也已经放弃了 对 win9x 的 开发.其实 Winpcap 中的 面向 9x 系统的 概念 和 NT 系统的 非常相似,只是在某些实现上有点差异,比如说 9x 只支持 ANSI 编 码,而 NT 系统则提倡使用 Unicode 编码. Winpcap 提供给用户两个不同级别的 编程接口:一个基于 libpcap 的 wpcap.dll,另一个是较底层的 packet.dll.对于一般的 要与 UNIX

38、 平台上 libpcap 兼 容的 开发来说,使用 wpcap.dll 是当然的 选择.下面几个库是与lipcap 相关的 :libnet1.0.2数据包的 发送构造过程;libnids实现了 ids 的 一些框架;libi 厘 米 pi 厘米 p 数据包处理. 操作系统拦截数据包的 技术有很多,现在很多文章都是介绍编写 I 米 第 9 页 共 33 页 DRIVER 阿在 NDIS 中间层对米 INIPORT(网卡驱动程序)和协议驱动程序之间 的 数据包进行拦截.这是微软提供的 一种技术但编写该过滤程序拦截程序非常 地复杂,安装也很麻烦. 现在简单的 介绍基于 NDIS 包拦截技术.NDIS

39、 协议驱动程序是通过填写一 张 NDIS_PROTOCOL_CHARACTERISTICS 的 表,并调用NDIS API 函数 NdisRegisterProtocol 进行注册.现在来关注一下 NDIS_PROTOCOL_CHARACTERISTICS 这张表,这张表中存有所有协议驱动程序 与底层的 派发函数的 入口.如 BindAdapterHandler,SendHandler, ReceiveHandler 等,当 网卡有数据包进入时,会通过表中 ReceiveHandle 或 ReceivePacketHandler 通知 协议驱动程序有一个该协议的 数据包进入,反之协议驱动程序是

40、通过 Send Handler 或 SendPacketsHandler 函数向网卡驱动发送数据包到网络上去的 .虽然 在程序中是调用 NdisSend 或 NdisSendPackets 函数发送,但是通过查看 NDIS.H 的 头文件里对这两个函数的 定义就知道了 ,它们都是一个宏定义,实际还是通 过这表中 Send Handler 或 SendPacketsHandler 发送的 .现在要做的 事情应该很 清楚了 ,只要能够将每一个协议程序所填写的 NDIS_PROTOCOL_CHARACTERISTICS 表里的 派发函数指向自己的 函数,就 能成功的 对数据包进行拦截. Winpca

41、p 也是用 NDIS(Windows 的 通信协议程序(比如 TCP/IP)和网络设备 驱动器之间通信的 规范)的 ,将自己注册为一个协议处理驱动.Winpcap 的 使用 非常方便,但是它有一个致命的 缺陷就是只适用于共享式以太网络,对于交换式 网络下的 数据则无能为力.经过测试,在使用交换机连接的 局域网下,Winpcap 只 能监听到本网段内的 数据,而对于来自其他网段的 数据则无法监听,除非你把 probe 接到交换机之前或者接到交换机的 console 口上,不过那样的 弊端是显而 易见的 ,所以,Winpcap 的 应用还是有局限性的 . 3.4 Jpcap 简介简介 由于核心 Java API 不能直接访问网络底层,因此需要借助一种工具来为 Java 和网络底层提供一个桥梁.Jpcap

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论