复制到下一台机器后避免运行软件?

Koo*_*bin 3 vb.net piracy-prevention

我开发了一个小软件.我想提供并仅在商业上运行它.我想让它在从我那里购买它的机器上运行.

如果有人从我的客户端计算机上复制它并在下一台计算机上运行它,我想停止运行/运行该软件.

有什么方法可以防止我的软件盗版?

Cox*_*oxy 6

改编我以前的一个答案:

有几种方法可以"激活"复制的软件,试图阻止随意复制应用程序.

在最简单的情况下,可能通过您的网站向您购买注册码("CD密钥"),并将其发送给将其输入程序或安装程序的用户.整个过程基本上可以离线完成; 程序本身在本地确定代码有效或无效.

这很好,很容易,但它极易受到密钥共享的影响 - 因为没有"打电话回家",应用程序无法知道成千上万的不同的人都使用他们从互联网或串行库或他们的朋友那里获得的相同密钥.制作"keygens"也很容易,这些"keygens"会生成从未实际由开发人员发布的有效看似密钥.

然后我们进入在线注册.您仍然拥有某种代码,但程序将回拨给服务器以确定代码是否有效且通常是唯一的.这会停止基本密钥共享,因为公司知道来自世界各地的太多人都使用相同的密钥.也许使用MAC地址也会涉及某种识别,在同一硬件上允许无限注册,但在看似不同的计算机上可能只有有限的数量.

这仍然非常简单,并且可以停止简单的密钥共享.人们实际上必须开始破解软件或伪装服务器响应以通过它.

有时程序本身是部分/大部分加密的,只能通过在线注册步骤解密.根据这种混淆的程度,破解可能非常困难和耗时.生化奇兵是一个备受瞩目的例子 - 使用全新的加密/复制保护方案首次亮相,该方案在发布后大约两周内被打破.

最后,一个特别保护的应用程序可能会与服务器保持持续联系,如果连接被切断,则拒绝工作.

如果您确定所有用户都将拥有可靠的互联网连接,那么可以将其视为保护应用程序的一种强有力的方式,但代价是隐私和一些用户对间谍软件的不信任.

在这种情况下,为了绕过激活,他们需要伪造服务器本身.Steam模拟器和私有WoW服务器就是一个例子.最后,没有什么是不可摧毁的.