龙空技术网

代码混淆无需大价钱,Code Virtualizer轻松搞定

慧都科技 2743

前言:

目前小伙伴们对“混淆代码解密工具”大致比较注重,我们都想要学习一些“混淆代码解密工具”的相关资讯。那么小编在网摘上搜集了一些关于“混淆代码解密工具””的相关资讯,希望各位老铁们能喜欢,姐妹们一起来了解一下吧!

任何创建创新性应用程序,DLL或设备驱动程序的开发人员都希望将代码尽可能机密,以避免第三方公司/开发人员研究应用程序内的代码并为自己的利益而窃取代码。一些开发人员使用外部保护系统来打包应用程序并保护其免受攻击者的侵害,但是大多数时候,这些保护系统无法提供他们所需要的强度,从而使开发人员在完全解压缩应用程序后完全感到沮丧。

市面很多代码保护软件,虽然功能强大,但同样价格昂贵,小编今天为大家推荐一款性价比高的代码混淆软件Code Virtualizer。

Code Virtualizer不能像普通的打包器那样工作;相反,它只是保护开发人员选择的敏感代码区域。这些敏感区域将转换为内部的虚拟机操作码,只有Code Virtualizer才能理解。如果攻击者试图了解虚拟机的操作码,则他将不得不跟踪一个复杂且多态的虚拟机,这使他在任何时候都正在执行什么代码方面大失所望。(点击文末“了解更多”下载Code Virtualizer)

虚拟化x86代码(用于32位或64位)的整个过程可以在以下阶段进行描述:

读取敏感代码块以进行保护:Code Virtualizer将在已编译的应用程序中搜索开发人员在其源代码中插入的所有敏感块 为应用程序创建一个唯一的虚拟机:Code Virtualizer使用其多态引擎创建一个唯一的虚拟机,以解释转换后的虚拟操作码将原始x86操作码转换为特定的虚拟操作码:Code Virtualizer会将原始x86操作码转换为仅先前生成的唯一虚拟机可以理解的特定操作码销毁原始x86操作码并将执行重定向到虚拟机:代码虚拟器将销毁原始x86操作码并将块中的第一条指令重定向到虚拟机,执行虚拟操作码而不是原始x86操作码

逆向工程的代码虚拟器

代码虚拟化包括将二进制代码从特定机器转换为另一台机器可以理解的不同二进制代码。即,来自特定机器的指令集被转换为新的指令集,该新的指令集被另一机器理解。下图表示从Intel x86指令块到另一台机器(特别是RISC 32位CPU)的新指令集的转换:

Code Virtualizer可以生成多种虚拟机,每种虚拟机具有不同的指令集。这意味着可以将特定的Intel x86指令块转换为每台计算机的不同指令集,从而防止攻击者在从x86指令转换后识别任何生成的虚拟操作码。下图表示如何将Intel x86指令块转换为不同类型的虚拟操作码,这些虚拟操作码可以由不同的虚拟机模拟。

当攻击者尝试反编译受Code Virtualizer保护的代码块时,他将找不到原始的x86指令。相反,他将找到一个全新的指令集,该指令集将不会被他或其他任何特殊的反编译器所识别。这将迫使攻击者进行极其艰巨的工作,以确定每个操作码的执行方式以及特定虚拟机如何为每个受保护的应用程序工作。Code Virtualizer完全混淆了虚拟操作码的执行和对每个唯一虚拟机的研究,以防止有人研究如何执行虚拟操作码。

下图显示了原始已编译应用程序的图像(在受到保护之前)以及在受Code Virtualizer保护时如何转换:

如图所示,Code Virtualizer需要将生成的虚拟机嵌入到受保护的应用程序的末尾(或在Stealth Mode中隐藏在您自己的代码中),以便在要执行虚拟操作码时模拟它们。虚拟机的大小可以从500Kb到3Mb以上不等!(取决于所选的虚拟机体系结构)。您还可以压缩生成的虚拟机和虚拟化的代码,以减少磁盘上最终应用程序的大小。

使用环境

Win32和Win64本机应用程序(EXE文件)Win32和Win64本机系统服务 Win32和Win64 设备驱动程序(NT设备驱动程序,WDM等)Win32和Win64本机动态链接库(DLL)其他本机PE文件,例如OCX,ActiveX控件,屏幕保护程序等。 Linux应用程序和库(.so)Mac OS X应用程序

由于.NET应用程序的性质,Code Virtualizer无法保护.NET应用程序中的敏感代码。为了保护.NET应用程序,建议您使用其他产品WinLicense。

标签: #混淆代码解密工具