我计划让一个MiniFilter做一些文件加密,在文件上添加一些元数据。
我想我明白我需要做些什么,在我的MiniFilter中,使文件以加密的形式存储,但系统可以毫无问题地读取。
如果应用程序要求读取文件,我需要查询加密部分,解码器,并将其发送回系统。
如果我试图复制文件,我需要复制整个文件,使用元数据和加密的有效载荷。
但我想我可能对元数据有问题:因为我无法知道我得到的IRP_MJ_READ是来自试图读取文件或复制粘贴请求的应用程序,所以我将永远无法读取元数据并复制它们。
在IRP_MJ_READ或IRP_MJ_CREATE中,是否有特定于复制粘贴操作的信息?
发布于 2018-01-26 19:57:14
你的任务无论如何都不会是容易或琐碎的。在Windows中进行加密文件系统筛选是很困难的。
从那里开始探索。只修改这个应该是非常直接的。确保您将使用VM和快照,并尝试只监视某个特定文件,并且只对该文件进行加密/解密,因为在成功之前需要多次尝试。
在IRP_MJ_READ或IRP_MJ_CREATE中,是否有特定于复制粘贴操作的信息?
一点也没有。内核对此视而不见。如果您想一想,即使是复制/粘贴自己,也会导致explorer.exe打开一个文件,读取源文件,并使用系统调用写入目标文件。操作系统的存在是为了确保系统调用工作并完成它们的工作,它不知道也不需要知道数据或元数据的读取来自于您复制/粘贴、右键单击explorer.exe上的属性或谁知道,您可以使用总指挥官并从那里复制粘贴,而这一个可以实现其副本完全不同,或者使用xcopy或机器人复制。您需要在内核中以一种更抽象的方式进行思考。
祝好运。
https://stackoverflow.com/questions/48074491
复制相似问题