锋芒 发表于 昨天 10:47

WFP过滤器断网 系统防火墙框架

【资料名称】: WFP过滤器断网 系统防火墙框架
【资料介绍】: WFP过滤器断网 系统防火墙框架

众所周知,目前在易语言上常见、常用的创建防火墙规则就两种:控制台命令(netsh)和COM组件对象(HNetCfg.FwPolicy2),且这两个方法都调用的是系统防火墙,同样也会显示在系统防火墙的GUI上。

https://www.fmcelue.com/vbimg/vb_97107_0_104402dnznjtnjjka63d3n.png



接下来这个基于防火墙的底层框架则不同,WFP(Windows Filter Platform)windows过滤平台,比较底层,可以用于创建多个网络过滤器,每个过滤器内都有不同的过滤条件,也就是阻止规则,系统防火墙的底层框架也用到了这个,因此你可以用netsh wfp show filters 过滤器枚举命令搜寻到系统防火墙GUI上的那些规则,但由WFP创建的规则却无法显示在系统防火墙的GUI上,AI如此解释:

防火墙UI的枚举逻辑(通过 INetFwPolicy2 COM接口)只会返回由MPSSVC管理的、符合其内部规则的过滤器。它不会去扫描WFP中所有其他提供程序或子层创建的过滤器。

我并不是推荐使用该API,只是因为在论坛上找不到相关的代码,在这之前我也只是首先参考例程构建了C++代码,之后才移植到易语言上,开源到论坛上属于是顺手之举。

WFP过滤器

控制台命令

COM组件对象

依赖系统防火墙

否,无需启用 是,需要启用 是,需要启用

执行速度 快 稍慢 快

持久性 持久;可选临时会话,销毁时期间创建的规则也被销毁 持久 持久

显示于系统防火墙GUI 否,只能通过api枚举出 是 是

源码中有什么:

WFP以类模块方式调用,你可以分别设定不同的规则,然后利用临时会话特性直接一同销毁,也可以以持久会话让规则持久存在

在进程操作之前都必须启动WFP会话

添加/删除规则的方式与常见调用方式相同,你可以传入同样的方法去调用(临时会话下无法删除当前会话以外创建的规则)

你可以枚举出所有规则,包括在系统防火墙GUI上看不到的规则,但要注意它只能枚举出有效的活动规则(即正在运行的非允许连接的规则)

你可以枚举出所有的WFP会话(有啥用我也不知道,但它确实也在api中,顺手就搞了,这个能看到系统防火墙的会话)

注意:该源码功能并不完善/完整,仅供参考!!!

下载地址:
页: [1]
查看完整版本: WFP过滤器断网 系统防火墙框架