实施软件的许可机制

时间:2009-05-13 09:09:34

标签: algorithm licensing piracy-prevention

我正在考虑实施良好的许可机制,以抵御盗版。在每次使用软件时,所需的机制不应使用互联网连接。我正在考虑基于硬件ID等的机制。你们有什么更好的建议吗?制作黑客证明许可证机制需要考虑哪些参数/算法/特性?

6 个答案:

答案 0 :(得分:5)

理想情况下,您需要与操作系统无关的内容。

我建议您在代码中嵌入许可证保护,或者将应用程序包装在其中,使其在没有首先运行复制保护代码的情况下无法运行。

最好是您的应用程序需要许可证密钥文件才能运行,而且这不是在本地生成的。

这样做的一种方法是您的应用程序根据初始运行时的硬件生成某种形式的图像代码。这是提供给您的,作为回报,您提供允许代码运行的许可证密钥。最好以CPU和主板为基础的硬件映像,因为这些变化最少。

你的应用。应该在运行时检查硬件映像和许可证密钥。

如果你想要你的应用程序。许可证时间有限,那么它还应该跟踪它运行了多长时间并将其嵌入许可证密钥文件中。

不要忘记加密许可证文件。

另外,不要忘记使用dotfuscator或类似工具反向编译可执行文件更加困难。

答案 1 :(得分:2)

请检查此问题:What copy protection technique do you use?

它还链接到其他相关问题。

答案 2 :(得分:1)

首先,没有什么是防黑客的,所以我不会花太多时间来保护你的软件。

基于硬件ID的机制的缺点是当用户购买新计算机或升级他需要更新密钥的大部分计算机时。 HWHash是一个非常好的HardwareID实现,但我想有更多(免费)解决方案。 在工作中我们使用Hardlock和Hasp键,但这些是usbkey解决方案,对于小型应用程序来说效率不高。

答案 3 :(得分:1)

我对发布的软件保护机制非常谨慎,因为他们更有可能发布黑客攻击。您可能最好使用某些技术来获取唯一的持久性ID,并使用它来推出自己的保护机制。我还认为,在运行程序时简单检查许可证是一个糟糕的主意,因为这会导致黑客进入您的保护机制的位置。 IMO,您最好以更随机的方式检查许可证,每次会话不止一次。

FWIW,我在我的高端桌面软件上使用硬件锁(hasp),在移动解决方案上使用基于设备ID的许可。如果您在垂直市场上销售少量高成本软件,恕我直言,良好的许可保护机制是有道理的,硬件加密狗运行良好。我的经验是,如果不存在,人们将使用比购买更多的许可证。对于大批量,低成本的软件,我倾向于通过增加用户群的大小和产品可视性来处理盗版。

答案 4 :(得分:1)

  

我正在考虑实施良好的许可机制,以抵御盗版。在每次使用软件时,所需的机制不应使用互联网连接。

然后如何定期在线检查许可证?

当用户第一次登录时,用户会根据其帐户验证安装,并且许可文件存储在用户PC上。此许可证文件已加密,并包含唯一标识许可证所需的所有数据。这些都存储在您的服务器上。

许可证文件将在设定的天数甚至数月内到期。在文件到期后登录检查帐户并验证其合法性。您甚至可以考虑在此时生成新的许可证文件。

如果用户互联网停机且无法注册许可证,应该有一些智慧可以给予一些余地。也许是7天。

如果在新计算机上重新安装该软件,则用户必须重复验证过程。

正如其他人所说,没有办法击败一个坚定的海盗,因为这样的人会破解密码,但这应该可以防止或减缓随意盗版。

答案 5 :(得分:0)

你可以查看Microsoft's SLP - 我没有用它,但它看起来很有趣(你知道,如果你是MS的东西......)

需要注意的一点是,没有许可机制可以保护您免受盗版,甚至大幅减少盗版。根据定义,许可机制将是客户端 - 这本质上是易碎的。看看DRM发生了什么......

因此,您的指南应该是可用性 - 应该将其用作一般政策的意图,好人将被轻松限制在他们应该被允许做的事情上,并且坏人 - 好吧,无论如何,坏人都会绕过你的意图,你最大的希望就是让它更有效。