我听说有一种方法可以在 Windows 中隐藏注册表项,但不记得它是什么——它可能与安全管理器有关。
我想做的是阻止用户从注册表中复制我的软件激活密钥,停用软件,然后通过将旧密钥复制回原位来重新激活它。
我知道的唯一解决方案是使用 GPO,它保存在注册表的受保护部分
简而言之,你不能对用户隐藏任何东西(假设他们是管理员),但你可以让它变得更加困难。
您可以使用本机 API 来“隐藏”注册表项来访问注册表,而不是使用 Win32 API。这实际上意味着用户将无法使用 RegEdit 删除或重新创建注册表项。他们也不得不求助于使用本机 API。
本文介绍了本机 API 以及隐藏的注册表项(在键名中使用嵌入的空值)。Sysinternals的RegHide工具允许您隐藏注册表项,而RegDelNull工具允许您删除它们。
但同样,一个足智多谋的人仍然可以解决这个问题。确保它仍然有效的唯一方法是让第三方(例如您控制的 Web 服务)定期验证许可证是否仍然有效。