我正在考虑实施一个良好的许可机制,该机制具有良好的反盗版能力。所需的机制不应在每次使用软件时都使用互联网连接。我正在考虑一种基于硬件 ID 等的机制。你们有更好的建议吗?制作防黑客许可机制需要关注哪些参数/算法/特征?
6 回答
理想情况下,您需要与操作系统无关的东西。
我建议您将许可证保护嵌入到您的代码中,或者将您的应用程序包装在其中,以使其在没有首先运行复制保护代码的情况下无法运行。
如果您的应用程序需要一个许可证密钥文件才能运行,并且该文件不是在本地生成的,那将是最好的。
这样做的一种方法是,您的应用程序会根据其初始运行时的硬件生成某种形式的图像代码。这是提供给您的,作为回报,您提供允许代码运行的许可证密钥。最好以 CPU 和主板为基础的硬件映像,因为这些更改最少。
你的应用程序。应在运行时检查硬件映像和许可证密钥。
如果你想要你的应用程序。许可证时间有限,那么它还应该跟踪它运行了多长时间并将其嵌入到许可证密钥文件中。
不要忘记加密许可证文件。
也不要忘记通过使用 dotfuscator 或类似工具来增加反向编译可执行文件的难度。
检查这个问题:您使用什么复制保护技术?
它还链接到其他相关问题。
我正在考虑实施一个良好的许可机制,该机制具有良好的反盗版能力。所需的机制不应在每次使用软件时都使用互联网连接。
那么如何定期在线检查许可证呢?
当用户第一次登录时,用户根据他的帐户验证安装,并且许可证文件存储在用户 PC 上。此许可证文件已加密,并包含唯一标识许可证所需的所有数据。这一切都存储在您的服务器上。
许可证文件在设定的天数甚至数月内到期。文件过期后登录会检查帐户并验证其合法性。此时您甚至可以考虑生成新的许可证文件。
在用户互联网中断并且无法注册许可证的情况下,应该有一些聪明的做法。也许7天。
如果在新计算机上重新安装软件,用户必须重复验证过程。
正如其他人所说,没有办法打败一个坚定的盗版者,因为这样的人会破解代码,但这应该可以防止或减缓随意的盗版行为。
你可以看看微软的SLP——我没用过,但它看起来确实很有趣(你知道,如果你喜欢 MS 的东西......)
需要注意的重要一点 - 没有任何许可机制可以保护您免受盗版,甚至大大减少盗版。根据定义,许可机制将是客户端的——这本质上是可破解的。看看 DRM 发生了什么...
因此,您的指导方针应该是可用性 - 意图应该是把它用作一般政策,好人将轻松地限制他们应该被允许做的事情,而坏人 - 好吧,坏人会得到无论如何,围绕你的意图,你最好的希望是让它更有效。
我会非常警惕已发布的软件保护机制,因为它们更有可能发布黑客攻击。您最好使用一些技术来获得唯一的持久 ID,并使用它来滚动您自己的保护机制。我还认为,在运行程序时简单地检查许可证是一个糟糕的主意,因为这会将黑客引导到您的保护机制的位置。IMO,您最好以更随机的方式检查许可证,并且每个会话不止一次。
FWIW,我为我的高端桌面软件使用硬件锁 (hasp),并在移动解决方案上使用基于设备 ID 的许可。如果您在垂直市场上销售少量高成本软件,恕我直言,良好的许可证保护机制是有意义的,并且硬件加密狗运行良好。我的经验是,如果不这样做,人们将使用比购买更多的许可证。对于大容量、低成本的软件,我倾向于忍受基于增加用户群规模和产品知名度的盗版。