软件说明
Code Virtualizer可以保护任何x32和x64本机PE / ELF / Mach-O文件(如可执行文件/ EXE、系统服务、DLL、OCX、ActiveX控件、共享对象、屏幕保护程序和设备驱动程序)中的敏感代码区。
当创建应用程序时,编译器将应用程序源代码编译为由机器语言代码组成的几个目标文件。 然后,将目标文件链接在一起以创建最终的可执行文件。当攻击者试图破解编译的应用程序时,他将使用反编译工具,将机器语言代码反编译为更全面的代码(如汇编代码或更高编程语言),并对反编译代码进行研究。当攻击者具有目标应用程序的良好知识时,他可以修改编译的应用程序以更改其行为。例如,攻击者可以绕过在应用程序中检查试用期的例程,并使其永远运行,甚至更糟糕的是,导致应用程序的行为好像已注册。
Code Virtualizer可将来自特定机器的二进制代码转换成另一个机器理解的不同二进制代码。 也就是说,来自特定机器的指令集被转换成由不同机器理解的新指令集。下图显示了从一个Intel x86指令块转换为另一台机器(特别是RISC 32位CPU)的新指令集:
Code Virtualizer可以生成多种类型的虚拟机,每个虚拟机具有不同的指令集。 这意味着Intel x86指令的特定块可以转换为每个机器的不同指令集,防止攻击者在从x86指令转换后识别任何生成的虚拟操作码。下图显示了一块Intel x86指令如何转换为不同类型的虚拟操作码,这些虚拟操作码可以由不同的虚拟机模拟。
当攻击者试图反编译由代码虚拟器保护的代码块时,他找不到原始的x86指令。而且,他会发现一个完全新的指令集,不被他或任何其他特殊的反编译器识别。这就迫使攻击者通过非常艰苦的工作,识别每个操作码如何执行以及特定虚拟机如何为每个受保护的应用程序工作。Code Virtualizer完全模糊了虚拟操作码的执行和每个的虚拟机的研究,以防止有人研究如何执行虚拟操作码。
Code Virtualizer可以嵌入你的Win32和Win64应用程序和设备驱动程序轻松。你只需要选择你的源代码中的哪些区域将被Code Virtualizer保护。以下示例说明如何在C应用程序中保护代码块。
VIRTUALIZER_START / VIRTUALIZER_END是虚拟宏,不会干扰原始应用程序的执行。 只有在保护时,Code Virtualizer才会识别这些区域的代码,并将它们转换为的虚拟操作码,然后在受保护的应用程序运行时由虚拟机模拟。
下面的图片表示原始编译应用程序(受保护之前)的图像以及在受Code Virtualizer保护时如何进行转换:
如图所示,Code Virtualizer需要在受保护的应用程序的末端嵌入生成的虚拟机,以便在虚拟操作代码执行时模拟它们。虚拟机的大小可以从10 Kb到30 Kb(取决于所选的复杂度级别),对受保护应用程序的最终大小没有影响。
Code Virtualizer是一种强大的技术,可以防止别人检查您的敏感代码,例如验证输入的序列密钥以注册应用程序的例程。此外,Code Virtualizer稍微修改受保护的应用程序的开头,这意味着你可以放置压缩器或其他软件保护程序在Code Virtualizer的上面没有问题。
如果你是一个Windows设备驱动程序开发人员,在因没有解决方案来保护您的设备驱动程序时感到烦恼,Code Virtualizer为您提供了相同的技术(32位和64位驱动程序)应用程序和DLL。
现在就尝试Code Virtualizer,开始插入更新的软件保护到您的Windows,Linux和Mac OS X应用程序和设备驱动程序!