代码保护软件VMProtect用户手册之内置脚本的使用(1)

翻译|使用教程|编辑:李显亮|2019-07-15 10:29:13.947|阅读 68 次

概述:VMProtect具有内置的强大脚本语言LUA,极大地增强了VMProtect在每个保护阶段的默认保护功能。之前对主窗口进行了介绍,接下来我们将对VMProtect中强大的内置脚本的使用进行介绍,希望对您有所帮助。

相关链接:

VMProtect是一种很可靠的工具,可以保护应用程序代码免受分析和破解,但只有在应用程序内保护机制正确构建且没有可能破坏整个保护的严重错误的情况下,才能实现最好的效果。

之前对主窗口进行了介绍,接下来我们将对VMProtect中强大的内置脚本的使用进行介绍,希望对您有所帮助。

下载VMProtect最新试用版

VMProtect具有内置的强大脚本语言LUA,极大地增强了VMProtect在每个保护阶段的默认保护功能。LUA语法非常类似于JavaScript,但与之不同的是,LUA不包含显式类。不过,脚本语言允许轻松地实现类、继承和事件等面向对象的编程机制。

对于如何使用脚本语言,可以进行以下三类的介绍:

  • 内置功能
  • 事件


第一部分:类


VMProtect中内置的脚本语言LUA是面向对象的:它在语法,意识形态和实现方面与JavaScript非常相似。脚本语言包括提供基本功能的标准类和提供对应用程序保护功能的访问的专用类。


▲核心

项目选择:

enum ProjectOption {
	None,
	Pack,
	ImportProtection,
	MemoryProtection,
	ResourceProtection,
	CheckDebugger,
	CheckKernelDebugger,
	CheckVirtualMachine,
	StripFixups,
	StripDebugInfo,
	DebugMode
}

使用VMProtect核心的类:

class Core {
public:
	string projectFileName();//返回项目的名称
	void saveProject(); //保存项目
	string inputFileName(); //返回当前项目的源文件的名称
	string outputFileName(); //返回当前项目的输出文件的名称
	void setOutputFileName(string name); //设置当前项目的输出文件的名称
	string watermarkName(); //返回当前项目水印的名称
	void setWatermarkName(string name); //设置当前项目的水印名称
	int options(); //返回当前项目的选项                                                            
	void setOptions(int options); //设置当前项目的选项
	string vmSectionName(); //返回当前项目的VM段名称
	void setVMSectionName(); //设置当前项目的VM段名称
	Licenses licenses(); //返回当前项目的许可证列表
	Files files(); //返回当前项目的文件列表
	Watermarks watermarks(); //返回水印列表
	PEFile/MacFile inputFile(); //返回源文件
	PEFile/MacFile outputFile();//返回输出文件
	PEArchitecture/MacArchitecture inputArchitecture(); //返回源架构
	PEArchitecture/MacArchitecture outputArchitecture();//返回输出架构
};


▲水印

用于处理水印列表的类:

class Watermarks {
public:
	Watermark item(int index); //返回带有给定索引的水印
	int count(); //返回列表中的一些水印
	Watermark itemByName(string name);//返回带有给定名称的水印
}

使用水印的类:

class Watermark {public:	string name(); //返回水印的名称	string value();//返回水印的值	bool blocked();//返回“Blocked”属性	void setBlocked(bool value); //设置“Blocked”属性}


▲许可证

用于处理许可证列表的类:

class Licenses {
public:
int keyLength(); //返回键的长度
string publicExp(); //返回公共指数
string privateExp(); //返回私有指数
string modulus(); //返回模量
License item(int index); // 返回具有给定索引的许可证
int count(); //返回列表中的许可证数量
}

使用许可证的类:

class License {
public:
string date(string format = "%c"); //返回许可证的日期
string customerName(); //返回许可证所有者的名称
string customerEmail(); //返回许可证所有者的电子邮件
string orderRef();//返回购买许可证的订单id
string comments();//返回许可的注释
string serialNumber(); //返回许可证的序列号
bool blocked(); //返回“Blocked”属性
void setBlocked(bool value); //设置“Blocked”属性
}


▲文件

用于处理文件列表的类:

class Files {
public:
File item(int index); // 返回具有给定索引的文件
int count(); //返回列表中的文件数量
}

使用文件的类:

class File {
public:
string name(); //返回文件的名称
string fileName(); //返回文件名
int options(); //返回选项
void setName(string name);//设置文件的名称
void setFileName(string name);//设置文件的文件名
void setOptions();//设置选项
}

- 持续更新中 -


VMProtect正版授权专享在线订购特享超低价格!还不赶紧加入你的订购清单?>>更多详情可点击咨询购买

扫描关注“慧聚IT”微信公众号,及时获取最新动态及最新资讯

1562572142.jpg


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果

文章转载自:vmpsoft官网 https://vmpsoft.com/support/user-manual/using-scripts/classes/#Core

登录慧都网发表评论登录


暂无评论...

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
相关厂商
相关产品
VMProtect

VMProtect 是新一代的软件保护系统,将保护后的代码放到虚拟机中运行,这将使分析反编译后的代码和破解变得极为困难。

在线客服 在线QQ 电话咨询
400-700-1020
反馈
在线客服系统
live chat