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版本的文件,反之亦然。
VMProtect最新版下载(qun:766135708)https://www.evget.com/product/1859/download
使用脚本
- VMProtect 有一个内置的强大脚本语言 LUA,大大增强了 VMProtect 在每个保护阶段的默认保护能力。
- LUA 的语法与 JavaScript 非常相似,差异是LUA 不包含显式类。但该脚本语言可以轻松实现类、继承和事件等面向对象的编程机制。
- 脚本的使用实例可以在 "VMProtect/Examples/Scripts "文件夹中找到。
Core
项目选择:
enum ProjectOption { None, Pack, ImportProtection, MemoryProtection, ResourceProtection, CheckDebugger, CheckKernelDebugger, CheckVirtualMachine, StripFixups, StripDebugInfo, DebugMode }
与 VMProtect 核心一起使用的类:
class Core { public: string projectFileName(); // returns the name of the project void saveProject(); // saves the project string inputFileName(); // returns the name of the source file for the current project string outputFileName(); // returns the name of the output file for the current project void setOutputFileName(string name); // sets the name of the output file for the current project string watermarkName(); // returns the name of the watermark of the current project void setWatermarkName(string name); // sets the name of the watermark for the current project int options(); // returns options of the current project void setOptions(int options); // sets options of the current project string vmSectionName(); // returns VM segment name for the current project void setVMSectionName(); // sets VM segment name for the current project Licenses licenses(); // returns the list of licenses for the current project Files files(); // returns the list of files for the current project Watermarks watermarks(); // returns the list of watermarks PEFile/MacFile inputFile(); // returns source file PEFile/MacFile outputFile(); // returns output file PEArchitecture/MacArchitecture inputArchitecture(); // returns source architecture PEArchitecture/MacArchitecture outputArchitecture(); // returns output architecture };
水印
处理水印列表的类:
class Watermarks { public: Watermark item(int index); // returns a watermark with the given index int count(); // returns a number of watermarks in the list Watermark itemByName(string name); // returns a watermark with the given name }
使用水印的类:
class Watermark { public: string name(); // returns the name of the watermark string value(); // returns the value of the watermarks bool blocked(); // returns the "Blocked" property void setBlocked(bool value); // sets the "Blocked" property }
许可证
一个用于处理许可证列表的类:
class Licenses { public: int keyLength(); // returns the length of the key string publicExp(); // returns the public exponent string privateExp(); // returns the private exponent string modulus(); // returns modulus License item(int index); // returns a license with the given index int count(); // returns the number of licenses in the list }
一个带着许可证工作的类:
class License { public: string date(string format = "%c"); // returns the date of the license string customerName(); // returns the name of the license owner string customerEmail(); // returns an e-mail of the license owner string orderRef(); // returns the order id the license was purchased string comments(); // returns comments to the license string serialNumber(); // returns the serial number of the license bool blocked(); // returns the "Blocked" property void setBlocked(bool value); // sets the "Blocked" property }
文件
一个用于处理文件列表的类:
class Files { public: File item(int index); // returns a file with the given index int count(); // returns the number of files in the list }
一个用于处理文件的类:
class File { public: string name(); // returns the name of the file string fileName(); // returns the filename int options(); // returns options void setName(string name); // sets the name of the file void setFileName(string name); // sets the filename of the file void setOptions(); // sets options }
文件夹
一个处理自定义文件夹的类:
class Folders { public: int count(); // returns the number of folders in the list Folder item(int index); // returns a folder with the given index Folder add(string name); // adds a new folder void clear(); // clears the list };
一个使用自定义文件夹的类:
class Folder { public: int count(); // returns the number of subfolders Folder item(int index); // returns a subfolder with the given index Folder add(string name); // adds a new subfolder string name(); // returns the name of the folder void clear(); // clears the list of subfolders void destroy(); // destroys the folder an all child subfolders };
获取完整>>>vmprotect 中文支持手册