- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Windows下基于SPI网络数据包拦截设计与实现
Windows下基于SPI网络数据包拦截设计与实现
摘 要:基于TCP、UDP协议的网络应用程序如果在内部对代码段进行检查或修复系统挂钩,通过HOOK API截包技术基本失效,在这种情况下,使用WINSOCK2 SPI技术就完全胜任对特定网络应用程序数据包的拦截任务,而且实现简单效率高,可移植性强。??
关键词:SPI;服务提供者;数据包过滤;HOOK??
中图分类号:TP301 文献标识码:A 文章编号:1672-7800(2011)011-0015-03?お?
??
0 引言??
随着网络技术的飞速发展, 网络截包技术成为网络安全应用中的一项重要技术.通过网络截包技术可以截获来自网络的数据包,根据需要对网络数据包进行过滤,协议转换和截取报文分析,典型的应用有网络防火墙和代理服务器等。??
根据TCP/IP协议在Windows网络架构中实现的特点,在Windows系统环境下,实现网络数据包截获的方式有多种.在用户模式下有HOOK API截包技术, WINSOCK 2000包过滤技术和WINSOCK2 SPI等技术.在内核模式下有NDIS中间驱动程序、NDIS HOOK Driver、TDI(传输驱动接口)过滤驱动程序等技术。??
我们对Windows系统中用户模式下使用HOOK API截包技术非常熟悉,而且在软件编程中经常使用这一技术对基于TCP、UDP协议的网络应用程序(如网络游戏,浏览器,FTP客户端等)截包分析,以实现软件特定功能.但是基于TCP、UDP协议的网络应用程序如果在内部对代码段进行检查或修复系统挂钩,使得我们不能挂钩特定的API函数(如send()或recv()等),在这种情况下HOOK API截包技术基本失效。为增强程序的可移植型,我们又不想涉及驱动。在这种情况下,使用WINSOCK2 SPI技术就完全胜任对特定网络应用程序数据包的拦截任务,而且实现简单效率高。文中将详细介绍Windows下基于SPI技术的网络数据包拦截的设计与具体实现。??
1 WINSOCK2 SPI 技术原理??
1.1 SPI概述??
Winsock2服务提供者接口(Service Provider Interface,简称SPI) 是Winsock API的补充。服务提供者接口(SPI)是应用程序使用的服务,其本身不是应用程序,它的作用是向加载这个服务的应用程序导出自己。??
Winsock2符合Windows开放服务体系(Windows Open Service Architecture, WOSA)模式,允许第三方服务提供者插入,而客户应用程序和Winsock2 DLL(Ws2_32.dll)可以不用做任何改动。Winsock2的体系结构和协议层次如图1所示。??
图1 Winsock2体系结构和协议层次??
SPI是一种标准接口,由传输服务提供者(Transport Service Provider,简称TSP)和命名空间服务提供者(Name Space Providers,简称NSP)两个部分组成。任何实现了这种标准接口的传输服务提供者和命名空间服务者都可以被系统调用。用户如果提供自己的TSP或者
NSP,就可以截获网络数据包,自己实现对数据包的处理。??
1.2 传输服务提供者(Transport Service Provider)??
传输服务提供者(通常是指堆栈协议)是提供建立连接,传输数据,行使流控制,出错控制的服务.它有两种类型:分层服务提供者(Layered Service Provider)和基础服务提供者(Base Service Provider).基础服务提供者负责实现传输协议的真正细节,它导出Winsock接口,直接实现协议(如TCP/IP提供者)。分层提供者本身是DLL,它向上导出所有的SPI函数供WS2_32.dll调用,在内部通过调用基础服务提供者实现这些SPI.分层服务提供者将自己安装到Winsock目录中基础服务提供者上面,截取来自应用程序中的Winsock API调用。用户创建套接字时,套接字创建函数(如socket)就会在Winsock目录中寻找一个合适的协议,然后调用此协议的提供者到处的函数完成各种功能。上面提供的协议层次图显示了应用程序,分层服务提供者和基础服务提供者之间的联系。??
2 用SPI截包的设计与实现??
2.1 安装分层服务提供者(LSP)??
在实现LSP之前,首先要将LSP安装到Winsock目录,必须在Winsock目录中安装两种协议--分层协议和协议链。安装分层协议是为了获取一个Winsock库分配的目
您可能关注的文档
最近下载
- 2025年天津市中考英语真题卷(含答案与解析).pdf VIP
- 工商银行swift代码大全.pdf VIP
- 文献检索与科技论文写作 课件全套 第1--9章 绪论、科技文献检索基础知识---科技论文的投稿.pdf VIP
- 《企业安全生产主要负责人和管理人员培训课件》.ppt VIP
- 宠物临床诊疗职业技能评价规范 宠物医师助理.pdf VIP
- 等离子体电极用碳化铪粉末、其制造方法、碳化铪烧结体和等离子体电极.pdf VIP
- 湖南师大附中2022-2023学年高一下学期期末数学试题含答案.pdf VIP
- 温室气体(GHG)管理手册.doc VIP
- SBS改性沥青防水卷材施工方案.docx VIP
- 多相流体的数值模拟及计算方法.pdf VIP
文档评论(0)