2011-03-08 30 views
1

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

+0

你可能需要更具体的你想要完成什么。 “ – sarnold 2011-03-08 11:53:53

+0

”需要访问相同数据的用户,但数据是有感染力的,我不希望任何用户阅读它。“ ????什么..那不让sence?附:制作一个服务器 - 客户端。把它们分开放在不同的机器上。 – Sigtran 2011-03-08 11:54:47

+0

客户端 - >服务器不是替代方案。我想知道是否有可能将文件访问限制为单个程序而不是单个用户。 – thenail 2011-03-08 12:04:20

回答

0

首先,如果您的用户具有管理员权限,那么没有明确的方法来阻止他们。

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

如果上述所有内容都不可行,您可以使用软件开发人员使用的与破解相同的混淆技术。

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

0

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

在Windows(以及大多数其它通用计算机平台),不可能对每个应用程序中的数据进行加密使得所述计算机属于用户,并且用户是主机,而不是应用程序。

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

0

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