Windows上的应用程序商店“我已停用”在哪里?

问题描述:

应用程序通常具有注册密钥。它可以被置于文件或注册表中。 有时,应用程序通过输入另一个密钥, 或通过日期等来停用。在哪里可以安全地存储关于应用程序的此类信息被禁用? 文件不是答案;备份副本可以恢复到 击败此。注册表是一个弱的答案,只是因为 大多数人不知道它在那里,并不认为它恢复它, ,如果他们这样做,他们恢复通常 有其他令人沮丧的副作用的整个事情。Windows上的应用程序商店“我已停用”在哪里?

在我看来,存储去激活信息是 绝望不安全,因为旧副本可以随时恢复。 最好的情况是,可以通过加密命名的文件或注册表项在 之间进行混淆来隐藏此数据。

有没有我不知道的标准把戏,或Windows支持的标准 方案,这有助于解决这个问题?

第2轮:我见过很多答案。他们都没有 具体说“你不能这样做”,但几个暗示 打电话回家是唯一的好选择(“停用”)。

让我们假设打电话回家,dongle不是答案, 和一个不得不在机器上留下的东西。在这种情况下,典型的许可方案实际上做了什么 ?

创建并注册服务器上的许可文件。如果您使用公钥密码术,则许可证文件不能轻易伪造。你的申请当然可以被破解而不需要许可证,但那是一回事。

雅,你可以加密的东西,这就是他们做的!。查网的各种许可schemes.Even微软有一个... Microsoft Software Licensing and Protection

您可以使用Microsoft加密API来开发你code.Plus掩盖你的程序集或dlls.Force用户激活。

+0

所有加密操作都隐藏了内容。无论盒子里有什么,如果我能检测到盒子的存在,我可以保存它的一个副本并在以后恢复。那么加密如何提供帮助? – 2009-06-14 06:41:52

+1

您可以将安装/首次使用日期存储在框中,然后检查是否已经过去了指定的时间。这将防止您提到的情况。 – RCIX 2009-06-14 07:06:52

+0

这允许您实现超时。 但是,如果软件在某个时间点注册了全功能 ,并且相关的 项目的快照已经完成并且在注销后恢复,那么该软件肯定会运行。 – 2009-06-14 08:00:54

所有保护方案都容易受到某种类型的攻击。信息的加密确实有助于防止攻击,因为信息以混淆的方式存储,但即使这样也不是不可破解的。

另一种可能的选择是远程存储实际的激活状态信息,并在机器上留下对该信息的引用,可能是加密的。有很多方法可以做到这一点,但想到的是存储某种类型的GUID,然后您可以在数据库中查找

这样做的一个缺点是互联网连接的需求,我没有知道这是否是禁止性的,但总体思路是从您不控制的机器上移除激活状态并将其放在您要做的一个机器上

与开放平台上的iPhone和其他封闭环境就像windows/linux一样,你总是会冒很大的风险,因为保护很容易被绕过(本地串行保护),或者通过反转和修补你的代码来破解。几乎每个现代单人游戏都有这个问题。另外,很难找到一个不会让用户烦恼的解决方案。我们都记得Sony-CD-Rootkit的灾难,而且在游戏行业,它始终是最新的DVD保护,它无法像所有驱动器那样工作。但你能做什么呢?您可以尝试通常的串行,回拨选项,并在更新的更新(Adobe,FlashFXP,Windows)中禁止某些连续出版物。如果你的消费者群很低,这对你来说可能就足够了。如果 - 无论出于何种原因 - 这不是一种选择,那么使用您的软件需要使用USB-Dongle。听说过很多使用它的CAD程序。你可以研究的最后一件事,你的应用程序的水印怎么样?如果它显示在某些p2p网络上,您可能会看到泄漏的位置。基本上什么都不会给你100%的保证,但有一些选项可以让普通用户更加困难......请记住,你的大部分资金应该花在创造一个伟大的产品上,而不是购买大多数无用的保护!

这是一个简短但很不错的总览不同的选项。

http://www.developer-resource.com/how-to-protect-software.htm