最新版本 1.2 | 最新 修订 1.2.7.0 | 推出日期 21-Aug-2006 |
Code Virtualizer 是一个强大的代码搅乱系统。它可以帮助软件开发者保护他们软件内重要和敏感的代码区,防止他人使用逆向工程,而且它只消耗最小的系统资源。
Code Virtualizer 将你源代码( Intel x86 指令)转化成虚拟的指令,只有内部的虚拟机器可以明白这些指令。对于每一个所保护的程式,这些所产生的虚拟指令以及虚拟机器本身都是独特的,以防止他人对 Code Virtualizer 采用广泛的攻击。
Code Virtualizer 可以在任何 x32 或 x64 原生 PE 文档中(例如 可执行 文档( EXEs ), system services, DLLs, OCXs, ActiveX 控制档,荧幕保护程式以及 装置驱动程序 )保护你重要和敏感的代码区。
当一个程式被创建时, 编译器 会将程式的源代码 编译 成多个含有机器语言代码的 对象档案 。然后,这些 对象档案 会被衔接在一起而产生最后的 可执行 文档。
图 1: 编译你的原代码
当 一个软件破解者尝试破解一个编译过的程式时,他会使用反 编译器 具将机器语言代码反 编译 成另一种更容易让人明白的代码(例如 汇编语言 或者一种更高级的 程序语言 ),然后对于这反 编译 成的语言进行研究。
图 2: 对你的程序作反编译
当 一个软件破解者对于目标程式拥有很好的了解时,他可以更改这个编译过的程式来改变它的运行。例如 , 软件破解者可以在程式里绕过一组用来检验试用期限的 例程 ,使它可以永久运作。更严重的是,软件破解者可以使程式看来已经经过注册那样地来运作。
代码虚拟化主要是将一组 二元码 转化成另一种另一个机器才明白的 二元码 。换句话说,一个特定机器的指令将被转变成另一个机器的指令。下图展示的是一组 Intel x86 指令转变成另一个机器的指令(一个 32- 位的精简指令集计算机的指令)
图 3: Intel x86 指令转变成 精简指令集计算机 的指令
Code Virtualizer 可以产生多种拥有个别指令集的虚拟机器。 换句话说,一组特定的 Intel x86 指令可以在个别的机器里被转变成各种不同的 指令集,以防 一个软件破解者从中辨别任何所产生的虚拟码。下图展示了一组 Intel x86 指令如何可以被转变成各种不同种类的虚拟机器所模拟的虚拟码。
图 4: x86 到多种虚拟 CPU 的转化
当 一个软件破解者尝试对一组受到 Code Virtualizer 保护的代码进行 反编译时,他无法找到任何本来的 x86 指令,而只会发现一个他或其它特别的 反编译器 完全陌生的、新的指令集。这将迫使 软件破解者使用非常多的努力来研究每一行的代码的意思以及学习每一个受保护程式内的虚拟机器的运作原理。 Code Virtualizer 完完全全地对虚拟码的运行以及个别虚拟机器的学习进行了搅乱,以阻止任何人学习当中的虚拟码是如何运作的。
Code Virtualizer 可以被轻易地 内嵌 进你的 Win32 或 Win64 程式以及 驱动程序 里。你只需要在你的源代码当中选择你要使用 Code Virtualizer 保护的代码区。下面的例子展示你如何可以在 C 程式里保护一个特定的代码区。
#include <stdio.h> void main() printf("Hello World"); VIRTUALIZER_END // end of area to protect |
VIRTUALIZER_START/VIRTUALIZER_END 宏 都只是多余的 宏 ,它们不会对原来的程式的运行有任何的影响。只有当一个受保护的程式运行进入保护时段时, Code Virtualizer 可以辨认这些受保护的程式区,然后将它们转变成一个虚拟机器明白的虚拟代码。
下图展示了一个原来 编译过的程式(在还没有受保护时)以及当它被 Code Virtualizer 保护时所经过的 转变。
图 5: 原来的程式和受保护程式的比较
如图所示, Code Virtualizer 需要将所产生的虚拟机器 内嵌 进受保护程式的末端,以便在程式运行的时候可以对模拟运行这些虚拟代码。虚拟机器的 大小 可以相等于 10 Kb 到 30 Kb (大小取决于所选择的复杂程度),对于最后所产生的受保护程式的大小没有太大的影响。
Code Virtualizer 是一个可以用来防止别人窥视你重要且敏感的程式的强大技术 , 例如你用来检验所输入的注册 序号 是否正确的 例程 。此外, Code Virtualizer 稍微改比变受保护程式里的 PE 标头 ,这意味着你可以在 Code Virtualizer 上置入一个 压缩器 或另一个软件保护层。
如果你是一个 驱动程序 的开发者,而且为了找不到一个保护 驱动程序 的解决方案而烦恼, Code Virtualizer 提供你一种相同于保护你程式和 DLL 的技术来保护你的 驱动程序 ( 32- 位或者 64- 位)。
今天就尝试 Code Virtualizer ,开始为你的 32- 位 /64- 位程式以及 驱动程序 里置入软件保护业里最新的技术吧!