主页 » 产品 » Web License Manager » 激活系统

激活系统

激活系统是 Web License Manager 和 VMProtect 本身的主要部分。它允许供应商执行两步注册过程,使许多好事成为可能。计时赛、更好的授权控制、盗版预防 – 仅举几例。激活系统是一个 VMProtect API 和一个 Web 授权管理器模块一起工作。集成相对容易,尤其是在您已经使用 VMProtect 授权系统的情况下。

试用模式

第一次运行

当用户第一次安装和运行应用程序时,应用程序应该启动试用计数器。与其他加密程序相比,VMProtect 不会将试用标记或计数器存储在系统中,因此很容易找到它们。相反,VMProtect 从激活服务器请求一个临时序列号。因此,您需要调用 VMProtectActivateLicense() API 来开始试用,并且您需要该 API 的激活码。

激活码应手动生成一次并存储在应用程序中。您需要为该代码设置无限次数的激活,并将其设置为在 30 天后或您想要的任何时间后过期。您还可以设置其他字段,例如用户数据,以便在应用程序处于试用模式时向应用程序提供一些特定信息。

要创建激活码,请转到 Web License Manager 并首先创建一个产品(如果尚未创建):

 

然后为产品添加一个“模式”来代表试​​用序列号。不要忘记设置“HWID”和“Expire”选项,否则试用期将永远不会结束:

 

然后,转到激活码页面并为该模式创建一个代码。

单击“保存”按钮后,您将在右栏中看到试用激活码:

在第一次运行时,受保护的应用程序会检查注册表或设置文件中存储的序列号。如果没有找到,应用程序需要开始试用期,所以它会向用户显示一个信息窗口,然后使用内置的激活码连接序列号的激活服务器。服务器返回序列号,应用程序将其存储到注册表中,以防止下次运行时进行相同数量的工作。

接下来的运行

在下一次运行时(或在第一次运行的上述步骤之后),应用程序最终可以从注册表中读取存储的序列号。然后它可以将其传递给标准 VMProtectSetSerialNumber() API 以初始化授权模块。重要的一步是分析返回码并检查序列号是否尚未过期。

该应用程序还可以从序列号中读取到期日期,并告知用户最后的天数。试用期结束后,VMProtectSetSerialNumber() API 将拒绝序列号,用户将无法从激活服务器获取新序列号,因为他的硬件标识符已存储在那里。所以我们来到下一个重要步骤 – 订购。

订购

用户购买的是新的激活码,而不是序列号。使用 VMProtect 和 Web License Manager 有几种方法可以实现这一点。第一个设置起来有点复杂,但值得花时间。第二个更容易设置,但有一些缺点。

全自动解决方案

您需要设置 Web License Manager 以使用您的支付处理服务,因此它会在每个订单中调用 WebLM。这可以很容易地完成,因为大多数电子商务提供商都允许供应商在他们的网站上设置注册机。因此,您需要将 Web License Manager 设置为您的电子商务提供商的密钥生成器。

您需要的第一件事是为不会过期的产品创建一个特殊的“完整版”模式:

然后点击“保存”,在列表中找到产品下的模式,点击“Keygen URL”链接。您将看到允许为各种电子商务提供商生成生成器链接的 keygen url 表单:

当用户付款时,您的付款处理服务会使用所有订单数据调用 Web License Manager,并为该用户生成一个非常特殊的激活码。此代码被发送到电子商务提供商,然后转发给客户。由于激活码很短,与序列号相比,用户可以轻松写下、记住或直接输入而不会出错。

当应用程序从用户那里获得新的激活码时,它会执行与第一次运行时的试用激活相同的操作。但是这一次,Web License Manager 会生成一个功能齐全的序列号,没有任何限制(或者按照供应商的配置)。然后将序列号传递给 VMProtectSetSerialNumber() API 并注册应用程序。

另一种方式

或者,您可以在 Web License Manager 中生成一组激活码,然后将它们作为列表导入电子商务提供商。他们通常允许供应商提供他们自己的序列号列表。在这种情况下,您无需将支付处理服务与 Web License Manager 相关联,因为该服务会向客户发送一个预先生成的激活码。

其余的和上面的完全一样。应用程序调用激活 API,激活服务器知道代码并返回一个功能齐全的序列号。

虽然更容易设置,但此方法不会将激活码(和序列号)“链接”到订单,因此您无法分辨哪个代码和序列号属于客户。

但是,这些方法可以一起使用,例如向经销商提供一组激活码,而主商店使用第一种方法。

停用

如果用户决定在另一台计算机上安装软件,他或她需要再次激活它。以前的序列号在新计算机上不起作用(使用默认设置),因为它具有不同的硬件标识符。由供应商决定 – 允许用户在多台计算机上安装软件,供应商输入激活次数作为激活码生成器的参数。

如果用户达到激活限制,他可以停用前一台计算机上的软件以减少服务器上的激活计数器,从而可以在另一台计算机上激活该软件。

停用会自动禁止停用的序列号。如果用户决定再次激活该计算机上的软件,他将获得新的序列号。必须将本地 VMProtect 工程文件与远程工程文件同步,以使被禁止的序列号列表保持最新。在这种情况下,新版本的软件将不接受旧的停用序列号。

离线模式

以上均假设电脑在线,可以直接调用激活服务器。但是,这不是必需的,因为有时用户现在可能出于某些原因想要让计算机联机。在这种情况下,激活模块提供了一个特殊的“离线”API,它生成激活/停用数据,然后将它们传递给用户以进行手动激活。

因此,如果计算机处于脱机状态, VMProtectActivateLicense() API 将返回 ACTIVATION_NO_CONNECTION 代码。在这种情况下,应用程序需要调用 VMProtectGetOfflineActivationString() API,然后向用户显示脱机激活的激活数据。然后,用户需要在另一台计算机上上网并将数据输入服务器上的激活表格(通常位于 http://server/offline.php)。将数据输入表单后,用户将获得一个序列号,他需要将其输入回应用程序。

同样适用于停用。离线表单接受激活和停用数据。