提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
Code Virtualizer 是一个强大的代码搅乱系统。它可以帮助软件开发者保护他们软件内重要和敏感的代码区,防止他人使用逆向工程,而且它只消耗最小的系统资源。
Code Virtualizer 将你源代码(Intel x86 指令)转化成虚拟的指令,只有内部的虚拟机器可以明白这些指令。对于每一个所保护的程序,这些所产生的虚拟指令以及虚拟机器本身都是独特的,以防止他人对 Code Virtualizer 采用广泛的攻击。
Code Virtualizer 可以在任何 x32 或 x64 原生 PE 文档中(例如可执行文档(EXEs),system services,DLLs,OCXs,ActiveX 控制档,荧幕保护程序以及 装置驱动程序 )保护你重要和敏感的代码区。
Code Virtualizer is a powerful code-obfuscation system that helps developers protect their sensitive code areas against Reverse Engineering while requiring minimum system resources.
Code Virtualizer will convert your original code (Intel x86 instructions) into Virtual Opcodes that will only be understood by an internal Virtual Machine. Those Virtual Opcodes and the Virtual Machine itself are unique for every protected application, avoiding a general attack over Code Virtualizer.
Code Virtualizer can protect your sensitive code areas in any x32 and x64 native PE files (like executable files/EXEs, system services, DLLs , OCXs , ActiveX controls, screen savers and device drivers).
声明:本产品中文介绍为慧都网版权所有,未经慧都公司书面许可,严禁拷贝、转载!
* 关于本产品的分类与介绍仅供参考,精准产品资料以官网介绍为准,如需购买请先行测试。
逆向工程的基本原理
当一个程序被创建时, 编译器 会将程序的源代码 编译 成多个含有机器语言代码的 对象档案 。然后,这些 对象档案 会被衔接在一起而产生最后的 可执行 文档。
图 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- 位程序以及 驱动程序 里置入软件保护业里最新的技术吧!
以下是 Code Virtualizer® 的主要特点:
使用多个虚拟机器进行搅乱
对每个受保护程序进行独特的保护
保护任何的 x32 和 x64 程序以及 驱动程序
先进的变异引擎
代码重组来保护 DLLs 和 驱动程序
在独特的虚拟机器里模拟任何 Intel x86 代码
每个受保护程序里都有独特的虚拟码
完全兼容于任何的 压缩器 / 软件保护层
由指令列加载 的保护
Basics about Reverse Engineering
When an application is being created, the Compiler will compile the application source code into several object files made of machine language code. Afterward, the object files are linked together to create the final executable.
Figure 1: Compilation of your source code
When an attacker tries to crack a compiled application, he will use a decompiler tool which will decompile the machine language code into a more comprehensive code (like assembly code or a higher programming language), doing his research over the decompiled code.
Figure 2: Decompilation of your application
When the attacker has a good knowledge of the target application, he can modify the compiled application to alter its behavior. For example, the attacker could bypass the routine that checks for the trial period in an application and make it run forever, or, even worse, cause the application to behave as if it was registered.
Code Virtualization against Reverse Engineering
Code virtualization consists of the transformation of binary code from a specific machine into a different binary code that is understood by another machine. That is, the instruction set from a specific machine is converted into a new instruction set which is understood by a different machine. The following picture represents the transformation from a block of Intel x86 instructions into a new instruction set for another machine (specifically a RISC 32-bit CPU):
Figure 3: Transformation from x86 to RISC 32-bit CPU
Code Virtualizer can generate multiple types of virtual machines with a different instruction set for each one. This means that a specific block of Intel x86 instructions can be converted into different instruction set for each machine, preventing an attacker from recognizing any generated virtual opcode after the transformation from x86 instructions. The following picture represents how a block of Intel x86 instructions is converted into different kinds of virtual opcodes, which could be emulated by different virtual machines.
Figure 4: Transformation from x86 to multiple Imaginary CPUs
When an attacker tries to decompile a block of code that was protected by Code Virtualizer, he will not find the original x86 instructions. Instead, he will find a completely new instruction set which is not recognized by him or any other special decompiler. This will force the attacker to go through the extremely hard work of identifying how each opcode is executed and how the specific virtual machine works for each protected application. Code Virtualizer totally obfuscates the execution of the virtual opcodes and the study of each unique virtual machine in order to prevent someone from studying how the virtual opcodes are executed.
Code Virtualization in RealLife
Code Virtualizer can be embedded inside your Win32 and Win64 applications and device drivers with ease. You just need to select which areas in your source code are going to be protected by Code Virtualizer. The following example shows how you can protect a block of code in a C application.
#include <stdio.h>
void main() printf("Hello World");
VIRTUALIZER_END // end of area to protect |
The VIRTUALIZER_START/VIRTUALIZER_END macros are dummy macros which do not interfere with the execution of the original application. It's only in protection-time when Code Virtualizer will recognize those areas of code and will covert them into unique virtual opcodes, which are then emulated by a virtual machine when the protected application is running.
The following picture represents the image of an original compiled application (before being protected) and how it's transformed when it's protected by Code Virtualizer:
Figure 5: Original Application versus Protected Application
As the image shows, Code Virtualizer needs to embed the generated virtual machine at the end of the protected application in order to emulate the virtual opcodes when they are going to be executed. The size of the virtual machine can vary from 10 Kb to 30 Kb (depending on the complexity level selected), making no impact in the final size of the protected application.
Final Words
Code Virtualizer is a powerful technology that can prevent someone from inspecting your sensitive code, such as your routines that validate an entered serial key for registering your application. Also, Code Virtualizer slightly modifies the PE header of the protected application, meaning you could put a compressor or other software protector on top of Code Virtualizer with no problems.
If you are a device driver developer and felt neglected when there was no solution to protect your device drivers, Code Virtualizer offers you the same technology to do so (for either 32-bit and 64-bit drivers) in the same way as your applications and DLLs.
Try Code Virtualizer today and start inserting the latest software protection into your Win32/Win64 applications and device drivers!
These are the key features of Code Virtualizer®:
更新时间:2024-09-03 11:42:26.000 | 录入时间:2007-08-29 10:32:51.000 | 责任编辑:胡涛
扫码联系 获取帮助
一个强大专业的系统 用于软件压缩和加密保护
JEB反编译和调试二进制代码和混淆的应用程序
Virbox Protector一款全面的数字版权保护与软件安全解决方案。
.NET Reactor一款为.NET Framework编写的软件的功能强大的代码保护和软件许可系统。
PreEmptive Protection DotfuscatorDotfuscator是一款.NET混淆器和压缩器,防止您的应用程序被反编译。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@pclwef.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢