软件激活如何工作?

Tan*_*moy 9 security deployment

我尝试过搜索,所有问题都与" 如何生成密钥 " 等具体内容有关.任何人都可以解释不同类型的软件激活是如何工作的?

Cox*_*oxy 18

在最简单的情况下,它是描述的maxwell5555.将注册码("CD密钥")发送给将其输入程序或安装程序的用户.整个过程基本上可以离线完成; 程序本身在本地确定代码有效或无效.

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

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

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

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

最后,一个特别保护的应用程序可能会与服务器保持持续联系,如果连接被切断,则拒绝工作.在这种情况下,为了唤醒您需要伪造服务器本身的激活.Steam模拟器和私有WoW服务器就是一个例子.

最后,没有什么是不可摧毁的.

  • +1为一个良好的一般纲要,并提到没有什么是不可破解的:). (2认同)

Ber*_*ann 2

我怀疑很多实施者不会透露这些信息,因为这会让他们容易受到黑客攻击。但如果我要这样做,我会这样做:

  1. 决定该软件是否许可给个人或计算机。
  2. 找到一种识别人/计算机的方法(登录帐户或来自计算机硬件的 ID)。
  3. 根据请求/付款:在您的私人数据库中,创建许可证密钥并为具有此密钥的个人/PC 添加条目。
  4. 向客户端软件提供密钥。
  5. 您的软件要么在本地存储密钥,要么定期检查密钥,为您的服务提供识别信息,作为回报,您的服务提供密钥(如果有)。如果没有找到,您的软件会向他们提供购买许可证的详细信息。后者允许浮动密钥、计算机升级和识别重复安装。

这就是你所要求的吗?