admin管理员组文章数量:1651797
2024年3月13日发(作者:)
分层服务提供者(LSP)(1)
开发过滤数据包的LSP程序可以定义过滤规则,恩,先看看
LSP本身是DLL,可以将它安装至Winsock目录,创建套接字的应用程序不必知道此
LSP的任何信息就能调用它
1. 运行原理
用户创建套接字
1) 套接字创建函数(如socket)在Winsock目录寻找合适的协议
2) 此协议的提供者导出的函数完成各种功能
我们的目的:
1) 将自己编写的提供者安装到Winsock目录中,让用户调用我们的服务提供者
2) 由我们的提供者调用下层提供者
就可以截获所有的Winsock调用
服务提供者本身是DLL,导出与Windows API相对应的函数,如
WSPStartup,WSPSocket,WSPSendTo等.
这里的LSP向上导出所有的SPI函数供Ws2_调用,在内部又通过基础服务提供
者实现这些SPI
2. 安装LSP
实现LSP之前,将分层提供者安装到Winsock目录,安装一个LSP包括安装一个
WSAPROTOCOL_INFOW结构(协议的入口),让创建套接字的应用程序可以枚举到它.
WSAPROTOCOL_INFOW结构:定义了分层提供者的特性和LSP是如何填写"链"的.
(1) 协议链
LSP和基础提供者连在一起形成了协议链,协议链描述了分层提供者加入Winsock目
录的顺序.
SPI提供三中协议:分层协议,基础协议,协议链
协议类型由WSAPROTOCOL_INFOW结构内的WSAPROTOCOLCHAIN结构中数据
指定,如下:
typedef struct _WSAPROTOCOLCHAIN {
int ChainLen; // 链的大小,也就是下面数组
的大小
DWORD ChainEntries[MAX_PROTOCOL_CHAIN]; // 协议链入口数组,数组成
版权声明:本文标题:防火墙网络封包过滤详细介绍(LSP)(SPI) 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1710283707a257407.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论