我想创建一个加密文件的应用程序(比如文本文件)
当应用程序(例如记事本)尝试打开文件时,我的应用程序会拦截请求并向应用程序提供解密数据。
记事本不知道刚刚发生了什么。
问题是我从哪里开始?
我已经是 10 多年的业余程序员,并且对 c++ 非常熟悉,但这将是视觉 c++ 的第一次。
您可以使用文件系统微过滤器文件系统微过滤器驱动程序来实现此类加密。有了这个,您可以拦截所有文件操作 (IRP) 并决定您想要做什么,其中可以包括加密。
但是,当您修改文件数据时,有很多棘手的情况需要处理(例如分页 IO、直接 IO 等)。此外,如果您透明地更改文件数据大小,则非常难以管理,这可能会导致很多问题。因此,在加密/解密时尽量避免更改文件数据大小。
为了理解,您可以查看 IFS 工具包文档中的 minispy 和 swapbuffers 示例。
顺便说一句,这不是 VC++。
本质上你是在复制 NTFS 加密,所以从 NTFS 文件系统驱动程序开始。特别是,加密文件需要是“重解析点”。