编写一个简单的Windows文件过滤驱动(OS实验)

本文介绍了在Windows下使用Minifilter框架开发文件过滤驱动的过程,包括功能需求、设计思路、开发环境配置、程序难点以及运行效果。驱动能保护特定文件,根据权限文件控制读、写、删除操作。但遇到在内核中读取权限记录文件时容易导致蓝屏的问题,目前仅实现基本过滤功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

摘要

我们的作业是在Windows下编写一个文件过滤驱动程序,该文件过滤驱动可以保护某一文件或者目录,驱动可以根据权限文件的权限记录来控制用户对被保护文件的读、写、删除操作。我们的计划是先在网上收集相关的学习资料进行学习和参考,学习如何去配置环境,如何用模板来写出一个HelloWorld程序,然后再实现如何对文件的保护,一步一步地实现作业需求。花了一定时间后,我们发现了Windows的Visual Studio 2017下面的Driver:Minifilter框架(微过滤器框架),其特点是封装得比较好,适合初学者开发。我们的测试环境是VMware虚拟机+Windows7,在禁止强制签名的情况下可以安装没有数字签名的驱动。在Minifilter框架下,对不同的IRP进行相应的判断和操作可以实现对文件的保护,比如用户进入了被保护的文件,而且尝试进行写,那么就会产生IRP_MJ_WRITE信号,禁止其则可以阻止写操作。在编译工程的时候,一开始一直编译不成功(编译可以通过,但是无法运行,错误:1275),后来发现要把解决方案平台x86改成x64,然后还要改工程的两个属性,这个具体后面再讲。编译成功后,驱动可以正常运行,实现了对文件的读、写和删除的权限限制。接下来我们的工作是实现在内核中读取权限记录文件,然后在对读取的内容进行判断,如果是false则阻止,true则不阻止。但是我们发现在内核中的文件操作很容易造成蓝屏,研究了很长时间都没有解决这个问题。所以我们的开发的驱动只是完成了最基本的过滤操作,并没有完全实现功能需求。

功能需求

设计一个可以对指定文件的操作权限监管的驱动程序,且该驱动程序可以在Windows7 x64环境下运行。用户通过修改权限文件中的内容修改指定文件的操作权限,并按照用户的需求启用和卸载该驱动程序。驱动程序要求有对指定目标文件的读、写、删除权限的控制,要求能够从权限文件中读取权限。在安装该驱动程序的时候,要求用户填写用户名,密码,要保护的文件或者文件目录,然后再确定保护权限,即读、写和删除权限。安装成功后,如果有对保护文件或者文件目录的非法操作,驱动就会阻止。如果用户想更改权限或者删除该驱动程序,首先得输入用户名和密码,然后才可以更

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值