Win64 驱动内核编程-34.对抗与枚举MiniFilter

本文介绍了MiniFilter在杀毒软件中用于文件系统保护和实时监控的作用,以及如何枚举MiniFilter。枚举主要通过FltEnumerateFilters API,而对抗MiniFilter通常涉及替换其处理函数地址。尽管不能直接反注册其他MiniFilter,但禁用处理函数会导致相关杀毒软件的文件保护失效。
摘要由CSDN通过智能技术生成

对抗与枚举MiniFilter

    MiniFilter 是目前杀毒软件用来实现“文件系统自我保护”和“文件实时监控”的方法。

由于 MiniFilter 模型简单,开发快捷,通用性好,以前用 FSD HOOK 或者标准过滤驱动来实现相关功能的杀软纷纷改用 MiniFilter,比如卡巴斯基。不过,枚举 MiniFilter 就跟之前枚举回调的方法不太相同了,因为 MiniFilter 的框架不在 NTOSKRNL 里,自成一套系统,有专用的 API。不过“自成一套系统,有专用 API”的好处就是,无需我们自己通过特征码来定位数组或者链表,直接使用 MiniFilter 提供的 API 就行。

    枚举MiniFilter主要使用FltEnumerateFilters这个API,它会返回过滤器对象(FLT_FILTER)的地址,然后根据过滤器对象的地址,加上一个偏移,获得记录过滤器 PreCall、PostCall、IRP 等信息的结构体指针(PFLT_OPERATION_REGISTRATION)。上文之所以说要加上偏移,是因为 FLT_FILTER 的定义在每个系统都不同,比如 WIN7X64 中的定义为:

nt!DbgBreakPointWithStatus:

fffff800`03e74f60 cc              int     3

kd> dt fltmgr!_FLT_FILTER

   +0x000 Base             : _FLT_OBJECT

   +0x020 Frame            : Ptr64 _FLTP_FRAME

   +0x028 Name             : _UNICODE_STRING</

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值