加密软件VMProtect教程:序列号加密算法

VMProtect是新一代软件保护实用程序。VMProtect支持德尔菲、Borland C Builder、Visual C/C++、Visual Basic(本机)、Virtual Pascal和XCode编译器。

同时,VMProtect有一个内置的反汇编程序,可以与Windows和Mac OS X可执行文件一起使用,并且还可以链接编译器创建的MAP文件,以快速选择要保护的代码片段。

为了轻松实现应用程序保护任务的自动化,VMProtect实现了内置脚本语言。VMProtect完全支持Windows系列的32/64位操作系统(从Windows 2000开始)和Mac OSX(从版本10.6开始)。重要的是,无论目标平台如何,VMProtect都支持所有范围的可执行文件,即Windows版本可以处理Mac OS X版本的文件,反之亦然。

序列号加密算法

许可证系统中的密钥的安全性是基于非对称加密算法的。目前的版本实现了RSA算法,密钥长度为1024至16384比特。未来的版本计划实现基于ECC的其他算法,以及对称+非对称组合密码学。

每个产品使用的算法都是独一无二的。用一种算法制作的密钥不能用于另一种算法,这意味着在创建了至少一个许可证后,改变算法是不允许的。被保护程序中的保护模块 "知道 "序列号是用哪种算法加密的,不会接受用其他算法或用相同算法但参数不同(例如,不同的密钥长度)的密钥。

RSA算法

用RSA算法对一个序列号进行加密,具体方法如下:

  • 在序列号的开头添加随机数据--该方法是基于RFC2313,但实现方式略有不同。以下字节被添加到密钥的开头:00 02 NN...NN 00,其中NN...NN是8到16个随机非零字节。字节的数量是随机的,但系统考虑到了密钥的长度和最大容量。
  • 在序列号的末尾添加随机数据--序列号中的字节总数必须等于算法中密钥的比特数除以8,序列号被附加上相应数量的持有随机数据的字节。因此,产生了以下的序列号格式: 00 02 NN...NN 00 DD...DD MM...MM,其中NN是一组随机非零字节,DD是原始序列号,MM是一组随机字节(包括零)。序列的摘要长度应等于算法中密钥的比特数除以8。
  • 加密使用许多库中实现的典型程序来处理大数字。PHP生成器包含所有需要的信息。
  • 包装 - 加密后得到的字节集被编码为base-64 - 这是一个给客户的序列号。

猜你喜欢

转载自blog.csdn.net/m0_67129275/article/details/131891390
今日推荐