0

我有一个将数据输出到硬盘的可执行程序,例如 C:\documents。

我需要一些方法在 Windows 7 中的数据到达硬盘驱动器之前拦截它们。然后我将加密数据并将其发送回硬盘。不幸的是,.exe 文件不支持重定向命令,即命令提示符中的 >。你知道我如何用任何编程语言(c、c++、JAVA、php)实现这样的事情吗?

加密只能在明文数据发送到磁盘之前完成,而不是之后

欢迎任何想法。谢谢

4

1 回答 1

0

这在一般情况下几乎是不可能的。许多程序使用内存映射文件写入磁盘。在这种方案中,内存范围被映射到文件的(部分)。在这样的方案中,无法将写入文件与写入内存区分开来。像这样的语句p[OFFSET_OF_FIELD_X] = 17;是逻辑上写入文件。此外,操作系统将跟踪内存和磁盘的同步。并非所有对内存的逻辑写入都直接转换为对磁盘的物理写入。有时,在操作系统的一时兴起,脏内存页被复制回磁盘。

即使在更简单的情况下CreateFile/WriteFile,动态截取数据的空间也很小。您可以实现的最接近的是使用 Microsoft Detours。我知道至少有一个蛇油加密程序(WxVault,戴尔上的垃圾软件)可以做到这一点。它在现场反复使我的应用程序崩溃,这就是为什么我的程序不修补任何动态拦截数据的尝试。因此,即使是这样的黑客攻击也无法抵御不喜欢干扰的程序。

于 2010-09-28T12:18:55.610 回答