是否可以在文件系统过滤器驱动程序中删除 IRP?
我有几个签名,我想构建一个文件系统过滤器驱动程序 它可以检查所有可能的带有签名的操作。如果找到匹配项 过滤器驱动程序应该完全丢弃 IRP 数据包。
可以这样做吗?
I have a couple of signatures and I want to build a File System Filter Driver
which can check all possible operations with the signatures. If a match is found than
the Filter Driver should drop the IRP packet completely.
Is it possible to do that?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
是的。
您正在描述几乎每个防病毒软件包的作用。您需要温习 NT 内核模式开发知识,并熟悉 文件系统微型过滤器。您还需要开始潜伏在 OSR NTFSD listserv 上。
过滤器驱动程序不能“完全删除 IRP”。它可以做的是在较低的驱动程序看到它们之前完成它们,或者在 IRP_MJ_CREATE 的情况下,在操作后回调之前取消它们。
系好安全带,您将经历一段颠簸的旅程:)
Yes.
You're describing what just about every anti-virus package does. You'll need to brush up on your NT-kernel mode development chops, and get familiar with File System MiniFilters. You'll also want to start lurking on OSR NTFSD listserv.
A filter driver cannot "drop an IRP completely". What it CAN do is complete them before lower drivers see them, or in the case of IRP_MJ_CREATE, cancel them before in a post operation callback.
Buckle up, you're in for a bumpy ride :)