Code Virtualizer(代码混淆工具)
v2.2.2.0- 软件大小:15.8 MB
- 更新日期:2019-07-01 19:35
- 软件语言:简体中文
- 软件类别:编程工具
- 软件授权:免费版
- 软件官网:待审核
- 适用平台:WinXP, Win7, Win8, Win10, WinAll
- 软件厂商:
软件介绍 人气软件 下载地址
Code Virtualizer是一款功能强大的代码混淆工具,专门用于帮助开发人员保护代码区域免受逆向工程,该实用程序能够加密代码数据并将其转换为其他用户无法读取和解释的格式,Code Virtualizer完全保护您在应用程序源代码中选择的代码区域,如果您的目标是避免某人监视您的应用程序的实现方式或实现某些重要例程(例如检查试用状态,许可处理等的例程),该程序将足以保护这些合理的代码区域,有了这款软件,您可确保源代码免受逆向工程任务的影响,以及实现压缩代码数据,其具备了极其简单的操作界面,使用相当友好,有需要的用户赶紧下载吧!
软件功能
便携式工具
这是一个便携式应用程序。您可以将其存储在USB闪存驱动器或其他便携式设备上,随时随身携带。此外,您可以在没有管理权限的情况下运行它。
获取其功能只需打开可执行文件,因为该过程中不包含任何设置。它不会将条目写入Windows注册表,并将其他配置文件保留在目标PC上。它实际上将设置数据保存到存储设备。摆脱它意味着您从Internet下载的文件的简单删除任务。
Vista般的外观
Code Virtualizer提醒Vista查看并实现几个可停靠的面板,可快速访问配置参数。
软件包中包含帮助手册,但我们无法在Windows 10上访问它。功能包非常简单,因此您不会在调整过程中投入大量时间。
设置有关应用程序和加密数据的信息
Code Virtualizer为您提供了有关程序名称和版本的详细信息,选择可执行文件(例如EXE,OCX,DLL,SCR),并指定保存目录或将文件保存到源文件夹。
您还可以查看有关文件大小,类型和上次修改日期的详细信息。项目可以保存到计算机上的文件中,以便将来导入。
更重要的是,您可以配置多个虚拟机,调整保护宏(您可以直接从MAP文件读取数据),在最后/新部分插入保护代码或激活隐藏模式,虚拟化字符串,压缩代码,剥离重定位,并启用假堆栈模拟模式。
总而言之,Code Virtualizer包含多个方便的混淆工具,可帮助您抵御逆向工程以保护共享软件应用程序。
软件特色
使用x64结构化异常处理在VM宏中添加了支持
支持对引用宏内部位置的宏标记之外的指针的检测
对从Excelsior MAP文件进行虚拟化读取功能的支持
对Golang编译二进制文件中插入宏的支持(Windows,Linux,Mac i386 / amd64)
添加了DOLPHIN虚拟机
添加了EAGLE虚拟机
提高了生成内部虚拟机的速度
在MUTATE_ONLY宏中添加了对字符串虚拟化的支持
对用户界面中DPI扩展的支持
使用多种混淆工具保护共享软件应用程序,这些工具可确保源代码免受逆向工程任务的影响,以及压缩代码数据
使用说明
Code Virtualizer的工作原理
虚拟化x86代码(32位或64位)的整个过程可以在以下阶段中描述:
·读取要保护的敏感代码块:Code Virtualizer将在编译应用程序中搜索开发人员在其源代码中插入的所有敏感块
·为应用程序创建一个唯一的虚拟机:Code Virtualizer使用其多态引擎创建一个唯一的虚拟机来解释转换后的虚拟操作码
·将原始x86操作码转换为特定的虚拟操作码:Code Virtualizer将原始的x86操作码转换为特定的操作码,这些操作码只能由之前生成的唯一虚拟机理解
·销毁原始x86操作码并将执行重定向到虚拟机:Code Virtualizer销毁原始x86操作码并将块中的第一条指令重定向到虚拟机,执行虚拟操作码而不是原始x86操作码
Code Virtualizer在PE文件的最后一部分(或隐藏模式下的您自己的代码内)中创建唯一的虚拟机和虚拟操作码,使PE文件的格式与原始格式完全相同,并避免有人识别该代码虚拟化器存在于应用程序内。
针对逆向工程的Code Virtualizer
代码虚拟化包括将来自特定机器的二进制代码转换为另一台机器可以理解的不同二进制代码。也就是说,来自特定机器的指令集被转换成新指令集,该指令集由不同的机器理解。下图显示了从一块Intel x86指令到另一台机器(特别是RISC 32位CPU)的新指令集的转换:
Code Virtualizer可以生成多种类型的虚拟机,每种虚拟机都有不同的指令集。这意味着可以将特定的Intel x86指令块转换为每台机器的不同指令集,防止攻击者在从x86指令转换后识别任何生成的虚拟操作码。下图显示了如何将一块Intel x86指令转换为不同类型的虚拟操作码,这些操作码可以由不同的虚拟机模拟。
当攻击者试图反编译受Code Virtualizer保护的代码块时,他将找不到原始的x86指令。相反,他会找到一个全新的指令集,这个指令集不会被他或任何其他特殊反编译器识别。这将迫使攻击者完成识别每个操作码的执行方式以及特定虚拟机如何为每个受保护的应用程序工作的极其繁重的工作。 Code Virtualizer完全模糊了虚拟操作码的执行和每个唯一虚拟机的研究,以防止有人研究如何执行虚拟操作码。
下图显示了原始编译应用程序的图像(受保护之前)以及它在受Code Virtualizer保护时的转换方式:
如图所示,Code Virtualizer需要将生成的虚拟机嵌入受保护应用程序的末尾(或在隐藏模式下的自己的代码内),以便在执行时模拟虚拟操作码。虚拟机的大小可以从500Kb到大于3Mb! (取决于所选的虚拟机架构)。您还可以压缩生成的虚拟机和虚拟化代码,以减小磁盘上最终应用程序的大小。
选择要保护的应用程序
使用Code Virtualizer保护应用程序的第一步是选择要保护的应用程序。您可以直接在“输入文件名”字段中键入名称,也可以浏览文件夹以选择所需的文件。您还可以打开以前保存的项目。
选择要保护的应用程序后,您将看到有关已加载应用程序的信息,例如大小,文件类型,以及最重要的虚拟化功能数。如果未找到要虚拟化的函数,Code Virtualizer将拒绝任何保护应用程序的尝试。要了解如何插入要虚拟化的函数,请阅读插入敏感代码区域。
当选择了要保护的应用程序并且Code Virtualizer识别出所有要虚拟化的功能时,您可以继续选择所需的保护选项。
虚拟机设置
可用的虚拟机
此面板显示可在受保护应用程序中使用的所有可用虚拟机。某些虚拟机是公共的,其他虚拟机是特定客户的私有。您可以通过info@oreans.com与我们联系,以了解有关自定义虚拟机的更多信息。
假设您使用TIGER虚拟机保护同一应用程序两次。每个受保护的实例都将包含一个唯一的TIGER虚拟机,该虚拟机具有来自前一个实例的不同寄存器,指令处理程序,操作码表等。他们将分享TIGER架构的内部骨架。一个者必须研究TIGER体系结构的内部骨架,然后尝试找到一种方法来攻击TIGER体系结构的所有不同变体。该方案包含基于虚拟机的所有当前软件保护程序(它们使用由它们定义的内部体系结构模型的突变/变体)。
我们希望更进一步,借助我们强大的虚拟机生成器工具创建多个虚拟机架构。比较两个不同的体系结构名称,如TIGER和LION,相当于将Intel x86处理器与ARM处理器进行比较。每一个都是完全独立的,并且在没有考虑到另一个的情况下开发。
复杂性和速度条显示有关给定虚拟机的执行速度和复杂性的一些统计信息。请注意,根据内部虚拟机修订版,这些值可能会更改(跨版本增加或减少)。
CPUs字段允许您指定将为给定的虚拟机体系结构生成的副本数。即使使用相同的体系结构名称,生成的虚拟机也将包含不同的寄存器位置,不同的处理程序,不同的操作码表等。当您为给定的虚拟机插入多个CPU时,某些保护代码和VM宏将使用任何生成的虚拟化中央处理器。
虚拟化
如果您使用(旧)VIRTUALIZER宏(而不是在宏中指定虚拟机的名称),则可以选择将使用哪些选定的虚拟机来保护未分配给任何特定虚拟机的VIRTUALIZER宏。
选择虚拟机的准则
开发人员可能会对应该选择哪个虚拟机感到困惑,以便为其应用程序获得所需的安全性。一些开发人员可能想要添加尽可能多的虚拟机和CPU,以大大提高其应用程序的安全性。这可能不会产生他们想要的效果。
1)只需插入一个虚拟机或其中几个。如果插入多个虚拟机和CPU,它将在磁盘和内存上生成一个受保护的大应用程序,因为某些虚拟机可能大于1Mb。请注意,如果您选择多个虚拟机并且未在较低的“虚拟化”面板中选择它们,则SecureEngine将不会在您的应用程序中插入这些虚拟机,因为它们将不被保护使用(优化受保护应用程序的最终大小)
2)在应用程序中使用VIRTUALIZER宏时,应避免使用普通的VIRTUALIZER宏并指定将保护特定宏的虚拟机体系结构(例如:“VIRTUALIZER_TIGER_RED_START / END”)。这将允许您使用复杂的虚拟机来处理最敏感的代码,并使用更轻的虚拟机来处理需要虚拟化并以高速执行的代码。
3)不时考虑更新您的VIRTUALIZER宏以指向不同或更新的虚拟机架构。如果您已经使用TIGER体系结构已有一段时间了,您可能希望在应用程序的新版本中选择不同的体系结构,以对抗已经在应用程序后面的程序一段时间。
保护宏
在“保护宏”面板中,您可以看到将为每个保护宏(VIRTUALIZER标记)保护的汇编代码。 您还可以查看每个保护宏内是否引用了任何ANSI或UNICODE字符串,并确定是否要保护这些字符串(请参阅“额外选项”面板中的“虚拟化字符串”选项)
您还可以启用或禁用受保护的特定块。 通常,只需要在受保护的应用程序中查找有问题的块,从而使取消选择块不受保护,这会使应用程序以不同的方式运行或产生应用程序异常。 如果您在保护特定宏时遇到问题,则应该这样做。
额外选项
保护代码的位置
Code Virtualizer可以将保护代码插入应用程序的不同位置。通过选择一个或另一个位置,您可以在应用程序中或多或少地隐藏Code Virtualizer的存在。
·插入最后一节:保护代码将插入应用程序的PE头的最后一部分。
·插入新部分:不会修改应用程序的PE部分,Code Virtualizer将在您的应用程序中创建一个新部分以插入保护代码。
·隐藏模式:对于完全希望在其应用程序中隐藏Code Virtualizer的用户,此选项是首选选项。基本上,您必须在应用程序代码中创建一个“空闲”空间,其中将插入保护代码。在“StealthMode”子文件夹中,您可以找到不同编程语言中有关如何在自己的代码中创建可用空间的示例,以便您的应用程序准备好支持“隐藏模式”功能。我们将很快添加对更多编译器的支持。
虚拟化字符串
此选项将在VIRTUALIZER标记内找到对字符串的所有引用,并将从应用程序数据区域中销毁它们。当要从VIRTUALIZER标记内部访问字符串时,保护代码将在不同的位置对其进行解密,并将其传递给您的应用程序。整个过程对于您的应用程序是完全透明的,当您的应用程序引用其中任何一个时,使特定的字符串准备就绪。
在“保护宏”面板中,您可以看到每个宏中出现的ANSI和UNICODE字符串。
我们建议您选择ANSI或UNICODE,具体取决于您是否在VIRTUALIZER标记内使用ANSI或UNICODE字符串。如果您的应用程序使用两种类型的字符串(非常罕见),则应选择“ANSI + Unicode字符串”选项。
压缩虚拟机
此选项将压缩(使用LZMA算法)Code Virtualizer添加到受保护应用程序的所有虚拟机和虚拟化代码。磁盘上的保护代码会更小,最终受保护的应用程序也不会增加太多。第一次调用任何保护宏时,将执行虚拟机的解压缩。 Code Virtualizer将检测到它有自己的代码压缩,并将继续进行解压缩。这意味着在第一次调用保护宏时,执行时间会有一个小的惩罚。
注意:启用隐藏模式时,压缩功能不可用。这是因为Code Virtualizer只压缩自己的代码(而不是您的应用程序代码),当保护代码插入到您自己的代码中间时,磁盘上的应用程序将无法减少。只有在最后一节或新节中插入保护代码时,才能减少最终的应用程序大小。
剥离重新定位
此选项将删除EXE文件中的重定位部分,使受保护的应用程序更小。
假堆栈仿真
伪堆栈仿真是应用程序的一个非常具体的选项,它假定堆栈中的非分配值被初始化为零。这种情况发生在一些PureBasic应用程序中,只有在您的应用程序确实需要它时才应启用。
用户界面本地化
您可以更改用户界面的语言。请注意,这仍然是实验性的,它可能不包含用户界面中最新更改的翻译。
保护您的应用程序
设置完所有保护选项后,如果要保护应用程序,只需按工具栏菜单中的“保护”按钮,就会出现上面的窗口。 要最终保护敏感代码,请按“保护”按钮,Code Virtualizer将生成具有特定操作码的多态虚拟机,以模拟应用程序中的原始代码。
常见问题
我可以将我的加密狗系统与Code Virtualizer一起使用吗?
当然! Code Virtualizer可以帮助您保护敏感代码区域,在这些区域中检查是否存在加密狗,并模糊您与加密狗的交互方式。
当我使用Code Virtualizer保护并将另一个保护器置于顶部时,它会失败并带有一些保护器?
Code Virtualizer稍微修改了应用程序的PE头,这不会影响您放在顶部的其他压缩器/保护器,它应该可以正常工作。
如果您选择在最后一部分(保护代码的位置)中添加Code Virtualizer代码并且重定位部分是最后一部分,那么如果您将保护器放在顶部并且保护器移除重定位部分(到减小受保护的EXE文件的大小)。要解决此问题,我们建议您在使用压缩器/保护器时启用Strip Relocations选项或选择不删除重定位部分。
如果要从外部分析工具完全隐藏Code Virtualizer的存在,可以在“保护代码位置”选项中选择“隐藏模式”。使用此选项,如果文件稍后受到保护或打包,则不应该有任何问题。
我可以使用Code Virtualizer保护我的.NET应用程序吗?
不,Code Virtualizer仅适用于本机应用程序。 任何发出x86操作码(用于32位或64位应用程序)的编译器都可以受Code Virtualizer保护。
我可以使用Code Virtualizer保护我的Win9x / Me(.vxd)驱动程序吗?
不,Code Virtualizer只能在32位或64位平台上保护基于NT的系统(NT,Windows 2000,Windows XP,Windows 2003,Windows x64 ...)的设备驱动程序。
如何插入保护宏时的备注?
Code Virtualizer可以将任何x86代码(32位和64位)转换为特定的虚拟操作码。您必须记住一些备注,以确保您的虚拟化代码将作为原始代码执行:
·为避免降低应用程序性能,应避免保护重复多次的迭代子句(FOR,WHILE,DO ...)
·由于编译器优化使用数据表直接跳转到代码中,受保护的敏感区域内的Switch / Case语句可能无法正常工作。请注意,您可以在每个不同的Case中包含要保护的块区域,以便通过Switch / Case语句执行。请参阅以下链接以获取解决方法。
·受保护敏感区域内的异常处理可能无法正常工作。您应该避免保护try-except子句(或Visual Basic中的On Error Goto语句)周围的敏感区域
测试受保护的应用程序
当您使用Code Virtualizer保护敏感代码区域时,您的应用程序应该作为原始应用程序运行,但如果您没有遵循上述任何说明,您的应用程序可能会在有问题的敏感块中崩溃。您可以通过选择/取消选择要保护的代码虚拟化面板块并再次重新保护您的应用程序来确定哪个敏感块是有问题的。
设备驱动程序开发者注意
如果您未在某些敏感区域中遵循上述说明进行保护,则您的驱动程序将在系统中产生异常并产生可能的保护错误。为避免系统中的数据损坏,您应始终在虚拟机(如VMWare,VirtualPC或任何其他PC仿真器)下测试设备驱动程序。
更新日志
改进了进入虚拟机的保护
改进了支持检测解引用宏
增加了对GoLang 1.6 / 1.7的支持
Dolphin VM:修复虚拟化宏块上的单个指令时的异常
人气软件
-
redis desktop manager2020.1中文 32.52 MB
/简体中文 -
s7 200 smart编程软件 187 MB
/简体中文 -
GX Works 2(三菱PLC编程软件) 487 MB
/简体中文 -
CIMCO Edit V8中文 248 MB
/简体中文 -
JetBrains DataGrip 353 MB
/英文 -
Dev C++下载 (TDM-GCC) 83.52 MB
/简体中文 -
TouchWin编辑工具(信捷触摸屏编程软件) 55.69 MB
/简体中文 -
信捷PLC编程工具软件 14.4 MB
/简体中文 -
TLauncher(Minecraft游戏启动器) 16.95 MB
/英文 -
Ardublock中文版(Arduino图形化编程软件) 2.65 MB
/简体中文