首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MiniFilter上复制粘贴和读取文件的区别

在MiniFilter上复制粘贴和读取文件的区别
EN

Stack Overflow用户
提问于 2018-01-03 09:23:22
回答 1查看 657关注 0票数 0

我计划让一个MiniFilter做一些文件加密,在文件上添加一些元数据。

我想我明白我需要做些什么,在我的MiniFilter中,使文件以加密的形式存储,但系统可以毫无问题地读取。

如果应用程序要求读取文件,我需要查询加密部分,解码器,并将其发送回系统。

如果我试图复制文件,我需要复制整个文件,使用元数据和加密的有效载荷。

但我想我可能对元数据有问题:因为我无法知道我得到的IRP_MJ_READ是来自试图读取文件或复制粘贴请求的应用程序,所以我将永远无法读取元数据并复制它们。

在IRP_MJ_READ或IRP_MJ_CREATE中,是否有特定于复制粘贴操作的信息?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-26 19:57:14

你的任务无论如何都不会是容易或琐碎的。在Windows中进行加密文件系统筛选是很困难的。

  1. 首先,我将给你一些提示和指点。最好的方法是解析OSR列表中的帖子和线程。当涉及到这种过滤器时,它是一座金矿。
  2. 查看微软的交换缓冲器示例。它们展示了如何用自己的方式替换读/写I/O路径中的数据。在本例中,正如您所描述的那样,您的场景在写入时加密,在读取时解密。
  3. 对于starters,只筛选设置了IRP_NO_CACHE标志的读/写。确保所有的读/写都是卷扇区大小的倍数。请参阅有关此标志这里的更多信息。
  4. 使用与体积扇区大小一致的分组密码,所有流行的都应该这样做。请参阅CNG

从那里开始探索。只修改这个应该是非常直接的。确保您将使用VM和快照,并尝试只监视某个特定文件,并且只对该文件进行加密/解密,因为在成功之前需要多次尝试。

在IRP_MJ_READ或IRP_MJ_CREATE中,是否有特定于复制粘贴操作的信息?

一点也没有。内核对此视而不见。如果您想一想,即使是复制/粘贴自己,也会导致explorer.exe打开一个文件,读取源文件,并使用系统调用写入目标文件。操作系统的存在是为了确保系统调用工作并完成它们的工作,它不知道也不需要知道数据或元数据的读取来自于您复制/粘贴、右键单击explorer.exe上的属性或谁知道,您可以使用总指挥官并从那里复制粘贴,而这一个可以实现其副本完全不同,或者使用xcopy机器人复制。您需要在内核中以一种更抽象的方式进行思考。

祝好运。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48074491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档