没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:郎婷|2023-04-24 15:16:20.130|阅读 142 次
概述:VMProtect是新一代软件保护实用程序。本文分享VMProtect入门使用教程准备项目之SDK功能,欢迎查阅~
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
相关链接:
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 是保护应用程序代码免遭分析和破解的可靠工具,但只有在正确构建应用程序内保护机制并且没有可能破坏整个保护的典型错误的情况下才能最有效地使用。
SDK 功能可以集成到受保护应用程序的源代码中,以设置受保护区域的边界,以检测调试器或虚拟化工具。
VMProtectBegin
void VMProtectBegin(const char *MarkerName);
识别代码保护区域的开始的标记,必须在受保护代码块的第一个命令(或过程或函数调用)之前调用 VMProtectBegin。MarkerName 定义标记的名称,类似于 VMProtect 中的“VMProtectMarker”+MarkerName。例如,标记 VMProtectBegin('CheckRegistration') 将看起来像 VMProtectMarker “CheckRegistration”。如果未设置标记的名称,则以“VMProtectMarker”+marker_serial_number 的形式为其指定一个唯一名称。你可以在 VMProtect 中设置给定受保护块的编译类型。
VMProtectBeginVirtualization
void VMProtectBeginVirtualization(const char *MarkerName);
识别具有预定义 "虚拟化 "编译类型的代码保护区域的开始的标记。MarkerName 定义了标记的名称,在进一步使用 VMProtect 期间,无法更改此标记的编译类型。
VMProtectBeginMutation
void VMProtectBeginMutation(const char *MarkerName);
识别具有预定 "突变 "编译类型的代码保护区域的开始的标记。MarkerName 定义了标记的名称,在进一步使用 VMProtect 期间,无法更改此标记的编译类型
VMProtectBeginUltra
void VMProtectBeginUltra(const char *MarkerName);
识别预定义的“超(虚拟化+变异)”编译类型标识代码保护区开始的标记。MarkerName 定义标记的名称。在进一步使用 VMProtect 期间,无法更改此标记的编译类型。
VMProtectBeginVirtualizationLockByKey
void VMProtectBeginVirtualizationLockByKey(const char *MarkerName);
使用预定义的“虚拟化”编译类型和启用“锁定到密钥”选项标识代码保护区开始的标记。MarkerName 定义标记的名称。在进一步使用 VMProtect 期间,无法更改此标记的编译类型。
VMProtectBeginUltraLockByKey
void VMProtectBeginUltraLockByKey(const char *MarkerName);
使用预定义的“虚拟化”编译类型和启用“锁定到密钥”选项标识代码保护区开始的标记。MarkerName 定义标记的名称。在进一步使用 VMProtect 期间,无法更改此标记的编译类型。
VMProtectEnd
void VMProtectEnd(void);
识别代码保护区结束的标记。对 VMProtectEnd 的调用必须放在受保护代码块的最后一个命令(过程或函数调用)之后。
VMProtectIsProtected
bool VMProtectIsProtected(void);
如果文件由 VMProtect 处理,则 MProtectIsProtected 函数返回 True。
VMProtectIsDebuggerPresent
bool VMProtectIsDebuggerPresent(bool CheckKernelMode);
VMProtectIsDebuggerPresent函数允许检测应用程序在调试器下的启动。结果(真/假)可以被应用内保护机制处理。如果CheckKernelMode=False,该函数检查用户模式的调试器(OllyDBG, WinDBG等)。如果CheckKernelMode=True,用户模式和内核模式的调试器(SoftICE,Syser等)。当保护驱动时,CheckKernelMode的值没有意义,因为驱动总是在内核模式下工作,所以内核模式调试器的存在总是被检查。
VMProtectIsVirtualMachinePresent
bool VMProtectIsVirtualMachinePresent(void);
VMProtectIsVirtualMachinePresent函数允许检测应用程序在虚拟机工具下的启动: VMware, Virtual PC, VirtualBox, Sandboxie. 结果(真/假)可以用应用内保护机制来处理。
VMProtectIsValidImageCRC
bool VMProtectIsValidImageCRC(void);
VMProtectIsValidImageCRC函数检测可执行模块在进程的内存中被改变的事实(只检查不可改变的代码和数据段)。结果(真/假)可以用应用内保护机制来处理。
VMProtectDecryptStringA
const char * VMProtectDecryptStringA(const char *Value);
VMProtectDecryptStringA函数解密了ANSI字符串常量--Value。要解密常数,你必须把它列入受保护对象的列表中。
VMProtectDecryptStringW
const wchar_t * VMProtectDecryptStringW(const wchar_t *Value);
VMProtectDecryptStringW函数对Unicode字符串常数--Value进行解密。要解密该常量,你必须将其纳入受保护对象的列表中。
VMProtectFreeString
bool VMProtectFreeString(const void *Value);
VMProtectFreeString 函数释放为解密字符串分配的动态内存。释放内存不是必须的,但如果你这样做 – 你必须使用此功能。如果 VMProtectDecryptStringA/VMProtectDecryptStringW 第二次使用相同的参数而不破坏先前解密的字符串,则不会分配额外的内存。
以上便是本篇文章的分享,如果您有任何疑问或者想获取更多产品试用/授权/价格信息,请点击VMProtect了解。
加密解密技术QQ群:766135708
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@wqylolg.cn
本文将手把手教你如何用VMProtect对这一关键函数进行虚拟化保护,大幅提升代码安全性,让逆向工程攻击者无从下手!
在 PDF 文档中添加页眉和页脚有助于保持一致的版式和专业的外观。本文将介绍如何使用 Spire.PDF for Java,通过 Java 在现有的 PDF 文档中添加页眉和页脚,并提供详细的步骤和代码示例。
对于开发人员来说,由于自动化和定制化,通常首选使用编程方法来去除 PDF 中的水印。Aspose.PDF 提供可靠且可定制的解决方案,可无缝集成到各种应用程序中,确保准确性并保持文档完整性。
在 Web 环境中,将 PDF 转换为 HTML 有助于提升内容的可访问性和交互性。本文将介绍如何在 React 中使用 JavaScript 和 Spire.PDF for JavaScript 库将 PDF 转换为 HTML。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@wqylolg.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢