许可证制度是如何运作的

应用程序保护

为了保护应用程序,VMProtect将特殊代码嵌入到应用程序中。此代码使用“项目”部分的“许可”小节中指定的信息检查序列号。一个公钥被嵌入到应用程序中,然后用于解密序列号。此外,保护日期和许可工作所需的一些其他信息也被放入应用程序中。

创建序列号

序列号可以在“项目”部分的“许可”部分创建,也可以使用第三方应用程序-密钥生成器。序列号是通过非对称算法加密的一组客户数据。然后将序列号传递给客户,他或她将其输入程序,授权系统进行检查。

检查程序中的序列号

许可证系统有几个程序可以用来处理序列号的功能。该程序向授权系统发送一个序列号,并查询有关它的信息。许可系统返回序列号的状态(有效/无效以及原因),还可以提供关于序列号的详细信息,包括用户名、电子邮件、序列号的过期日期等等。受保护程序分析序列号信息,决定是否继续操作和限制功能。

集成到应用程序

在下面描述的几个步骤中,我们将创建一个用于查询许可系统的测试应用程序:向其提供序列号,接收序列号的状态及其内容。在第一阶段,我们在测试模式中使用许可证制度;在第二阶段,我们使用它,因为它将在实际实践中使用。

许可证制度的工作方式

建筑防护通常经历两个主要步骤:开发和发布。至于许可,首先创建一个应用程序,将保护集成到其中,然后添加检查和功能限制。只有经过彻底的测试,你才能将产品提供给用户,并开始第二阶段。测试受保护的应用程序是一个复杂的过程,因为您需要确保所有检查和条件跳转操作正确。为所有可能的测试用例制作“真实的”序列号是不方便的。这就是为什么授权系统也提供了“开发者模式”(又名“测试模式”)。在此工作模式下,应用程序不受任何保护,系统对提供的序列号的反应在配置文件中进行调整。当应用程序没有bug并且可以正确地与许可系统一起工作时,VMProtect将“test”许可模块替换为执行真实序列号检查的真实许可模块。这是在应用程序受到保护时执行的,因此您不能错误地避免此步骤。

阶段1:测试模式

在测试模式中,授权系统对提供的序列号的所有反应(状态和返回的数据)都在配置文件中描述。该文件名为vmplense .ini,应该位于应用程序的工作文件夹中。在下面提供的10个步骤中,我们将从创建最简单的应用程序到在测试模式下使用许可系统的全功能使用,并将硬件锁定并限制免费升级的期限。

第二阶段:真实模式

在real模式下,VMProtect授权系统为被保护的应用添加一个特殊的授权模块。该模块与SDK中的测试模块功能相同,但使用的是序列号内容,而不是配置ini文件。接下来的五个步骤说明了使用基于VMProtect和许可系统的全功能保护保护一个简单应用程序的过程。