phoenix Fire Wall (凤凰防火墙)原理分析

phoenix防火墙原理

 

 

应用层原理

Winsock 2 服务提供者接口(SPI)为应用程序提供服务。
SPI的体系结构为:
(协议层次)
Winsock 2 API -> WS2_32.DLL -> SPI -> Transport ,Layered Protocol, SPI -> BaseProtocol

 

(Winsock 2 结构)
Winsock 2 Application -> Winsock 2 API -> Winsock 2 DLL -> Winsock 2 Transport Function SPI -> Transport Service Provider

分层服务提供者将自己安装到Winsock目录中的基础提供者上面,截取来自应用程序的 Winsock API 调用。
用户创建套接字时,套接字创建函数会在Winsock目录中寻找合适的协议,然后调用此协议的提供者导出的函数完成各种功能。

 

安装LSP 的过程是:
1、先安装一个分层协议,然后安装协议链; WSCInstallProvider
2、重新为目录排序 WSCWriteProviderOrder

移除LSP 使用 WSCDeinstallProvider

 

具体编写 LSP 的过程是,导出 WSPStartup函数,在这个函数里面修改 WSPPROC_TABLE 指向的 Winsock 2 API 函数的地址,指向自己的函数.

 

 

 

驱动层原理

NDIS 网络驱动程序为网络驱动抽象了网络硬件,为上层驱动抽象了管理硬件的下层驱动。

Transport Driver Interface (TDI)
|
NDIS Interface
|
NetCard

中间层驱动位于微端口驱动和传输驱动之间,是基于链路层和网络层之间的驱动。
中间层驱动的主要用途之一是过滤网络封包,它能够截获所有的网络数据包。

 

PassThru 是 DDK 自带的中间层例子,
在 PassThru中,有 4 处封包是可以截获的。
MPSend
MPSendPackets
PTReceive
PTReceivePacket

 

获取网络数据包的函数是 NdisQueryBufferSafe ,网络数据包在系统内部使用 NDIS_BUFFER 类型的链表存储,取出数据包后根据过滤规则检查,允许的就推进到下一层,不允许的直接丢弃。


-----------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值