1

在 Windows 中是否可以在单个程序中保护数据?我一直在研究 CryptProtectData 但这是基于用户的我想要一些类似但基于程序的东西。我的程序将有多个用户需要访问相同的数据,但数据是敏感的,我不希望任何用户阅读它。

4

3 回答 3

0

CryptProtectData(间接)使用用户的凭据来加密数据。

在 Windows(以及大多数其他通用计算机平台)上,不可能在每个应用程序的基础上加密数据,因为计算机属于用户,用户是主人,而不是应用程序。

如果您不希望用户(以及在用户帐户下运行的其他应用程序)访问数据,则需要将这些数据移出计算机,将其存储在远程系统上并控制用户对这些数据的访问。

于 2011-03-08T12:06:58.430 回答
0

首先,如果您的用户具有管理员权限,则没有明确的方法可以将其排除在外。

其次,即使他们没有,您也必须在ring 0处实现您的软件的一部分,因此它将拥有比用户更高的权限,这将使他们更难访问进程的内存或可执行文件。然后,您可以加密您的数据并在将其提供给用户时对其进行解密。

如果以上所有方法都不可能,您可以使用软件开发人员用来对抗破解的相同混淆技术。

这通常归结为阻止调试或阻止修补。这里有一些建议:http ://www.woodmann.com/crackz/Tutorials/Protect.htm

于 2011-03-09T11:27:23.963 回答
0

如果您的用户没有管理员权限,那么我要做的就是让您的程序为自己的目的创建一个帐户。当您的程序创建其数据文件时,它会在这些文件上设置 ACL,以便它创建的帐户是唯一可以访问这些文件的帐户。每当您的程序需要读取/写入这些文件时,它都需要使用其特殊帐户临时登录。然后问题是将该帐户的登录凭据保密。这完全是另一个问题。

于 2015-08-18T13:18:08.310 回答