Code Virtualizer® 是一款强大的代码虚拟化混淆系统,支持 Windows、Linux 和 macOS 平台,通过将原始代码转换为独特的虚拟操作码,帮助开发者有效保护敏感代码区域免受逆向工程分析。
支持 Windows / Linux / macOS · x86 / x64 / ARM64
Code Virtualizer 将您的原始代码(x86/x64 或 ARM64 指令)转换为只有内部虚拟机才能理解的虚拟操作码,每个受保护的应用程序都拥有独一无二的虚拟操作码和虚拟机。
Code Virtualizer 可以保护任何 x86/x64 或 ARM64 原生 PE、ELF 或 Mach-O 文件,包括可执行文件、系统服务、DLL、OCX、ActiveX 控件、共享对象、屏幕保护程序和设备驱动程序。
Code Virtualizer 可以生成多种类型的虚拟机,每种虚拟机都有其独特的指令集。同一段代码可以被转换为不同虚拟机的不同指令集,防止攻击者识别转换后的虚拟操作码。
了解攻击者如何从编译后的二进制文件中还原您的核心逻辑,以及为何代码保护至关重要。
编译器将源代码编译为由机器语言代码组成的多个目标文件,随后这些目标文件被链接在一起,生成最终的可执行文件。
攻击者使用反编译工具将机器语言代码反编译为更易理解的代码(如汇编代码或更高级的编程语言),然后在反编译后的代码上进行研究分析。
当攻击者对目标应用程序有了充分的了解后,他可以修改已编译的应用程序来改变其行为。例如,绕过检查试用期的例程使应用程序永久运行,甚至使应用程序表现得如同已注册一样。
代码虚拟化是将特定机器的二进制代码转换为另一台机器能够理解的不同二进制代码的过程——将原始指令集转换为全新的、独特的虚拟指令集。
下图展示了将一段 Intel x86 指令转换为另一台机器(具体为 RISC 32 位 CPU)的新指令集的过程。
原始的 x86 操作码被完全替换为攻击者无法识别的虚拟操作码,从根本上阻断逆向分析路径。
Code Virtualizer 可以生成多种类型的虚拟机,每种虚拟机都有其独特的指令集。同一段 x86/x64 或 ARM64 指令可以被转换为不同虚拟机的不同指令集,防止攻击者识别任何生成的虚拟操作码。
攻击者将无法找到原始的 x86 指令,取而代之的是一套全新的指令集,既不被攻击者认识,也不被任何反编译器识别。Code Virtualizer 完全混淆了虚拟操作码的执行过程和每个独特虚拟机的内部逻辑。
这将迫使攻击者进行极其艰难的工作——识别每个操作码如何执行,以及每个受保护应用程序的特定虚拟机如何工作。即使攻击者破解了一个应用程序的虚拟机,也无法将分析结果复用到其他受保护的应用程序上。
只需几行宏代码即可将 Code Virtualizer 嵌入到您的应用程序、库和设备驱动程序中。
包含 VirtualizerSDK.h 即可使用所有保护宏。
用 VIRTUALIZER_START / VIRTUALIZER_END 包裹敏感代码。未保护时为空操作。
Code Virtualizer 将标记区域转换为独特虚拟操作码,运行时由虚拟机模拟执行。
Code Virtualizer 在受保护应用程序的末尾嵌入生成的虚拟机,以便在虚拟操作码即将执行时对其进行模拟。
有效防止他人检查您的敏感代码,如序列号验证、试用期检查和注册逻辑等关键例程。
为 Windows 设备驱动程序开发者提供同等的虚拟化保护技术,支持 32/64 位驱动。
仅轻微修改应用程序头部,可与任何压缩器或其他软件保护器完美配合使用。