目录
1. .vmp文件说明
.vmp文件是对程序加壳时使用的,对应界面上则是添加授权。如下所示:
2. .vmp文件内容分析
通过VMProtect.exe生成的.vmp文件格式如下所示:
文件字段说明如下:
2.1 Protection字段
此字段的内容主要是说明程序中哪部分代码被保护以及如何被保护
它的内容对应于VMProtect.exe分析的结果
在命令行使用VMProtect_Con.exe和.vmp文件对程序进行加壳时,Protection字段的内容可以没有
2.2 LicenseManager字段
LicenseManager包含的字段如下所示:
① ProductCode:
ProductCode是VMP对产品的定义,此字段需要和序列码生成时使用的VMProtectProductInfo结构体中pProductCode是相同的。
注意:此处的ProductCode是base64处理以后的。
② Algorithm和Bits:
表明对程序进行加壳使用的加密算法和位数,需要和之后脱壳时生成序列号指定的算法和位数相同
在界面上对应:
③ PublicExp、PrivateExp、Modulus:
此三个参数为RSA公私钥的三个重要参数:
- PublicExp:e的base64编码
- PrivateExp:d的base64编码
- Modulus:n的base64编码
但是对程序进行加壳时,实际上是使用公钥进行加密。而公钥只涉及到e和n,所以为了防止私钥泄露,此处我们可以填写一个虚假的d,即:PrivateExp
2.3 License字段
下图为生成.vmp文件时设置的授权信息
① Date:
对应详情中的日期
② CustomerName:
对应序列号内容中的用户名字
③ CustomerEmail:
对应序列号内容中的Email
④ OrderRef:
对应详情中的订单
⑤ 这是一条测试内容:
对应详情中的备注
⑥ SerialNumber:
序列号
在加壳时,License字段也不是必须有的
3. .vmp文件简化
通过以上分析,如果命令行使用VMProtect_Con.exe和.vmp文件对程序进行加壳时,我们可以将.vmp文件不需要的字段删除进行简化。
其中:为了防止私钥泄漏,PrivateExp我们设置为虚假内容