隐藏注册表活动

时间:2010-11-22 17:22:21

标签: c# .net security registry regedit

项目:我目前正在开发一个安全系统,系统依赖于注册表获取支持。

问题: 如果有人设法找到我正在使用的注册表项,那么该人可以绕过该系统。 我需要能够避免使用注册表监视器和其他软件,以便隐藏使用注册表项的活动。

有谁知道如何做到这一点,还是有更好的方法可以用于此目的?

谢谢。

3 个答案:

答案 0 :(得分:4)

为什么要尝试向管理员隐藏软件?管理员拥有该计算机,通常只有恶意软件会尝试将自己隐藏在计算机所有者之外。

有一些rootkit类型的技术可以抵御大多数检测尝试。但是如果你不得不采用这种技术,你的软件就会像真正的rootkit一样。这通常是一件坏事 - 事实上,一些AV(以及像RootkitRevealer这样的工具)会找到你的软件并将其杀死。你确定要参加那种类型的战斗吗?

如果不知道你想要保护或预防的是什么,很难就合适的替代方案提出建议。您的第一个操作应该是创建threat model。然后,您可能希望查看涉及digital certificate的技术,以保护您的私人信息的安全,并避免不可检测的篡改。您的应用可以合法地安装自己的数字证书,而无需客户了解。

修改:在回答您的评论时,确保检测到证书删除的最佳方法是在安装过程中使用机器标识的哈希“回家”。哈希标识唯一的机器,而不会提供有关机器的任何信息。有许可方案可以为您完成所有这些,例如Desaware's licensing system

答案 1 :(得分:1)

以任何方式都不是万无一失,但你可以找到最常见的(如RegMon和Process Explorer等),如果你发现它们正在运行,你可以建立一个对话框告诉用户他必须禁用它们被允许继续。你必须继续检查这些,但是在安装开始后他不再启动它。 我认为这就是某些游戏的copyprotection所做的事情。

虽然我认为用户可以在安装之前以文本格式导出注册表的大部分/全部部分然后再次进行比较,所以即使你可以确保没有任何内容在运行,你仍然会无法确保无法找到您的更改。

答案 2 :(得分:1)

正确的做法是设计一个只需知道所使用的注册表项就无法绕过的系统。