about us

Virbox Protector 2 重磅发布,让软件加密更智能更安全!

发布时间:2020-10-13 15:26:00 访问量:6358

  
Virbox Protector 2 发版公告


深思一直以创新精神引领软件版权保护行业的技术发展,自 2018 年打造并发布软件安全保护工具 Virbox Protector (1.x版)至今,深思软安团队不断打磨产品,服务了大量客户。经过不断的进行技术研究、实践以及与破解对抗,历经两年时间,现隆重推出 Virbox Protector 2.x(简称 VBP 2),凝聚了深思最新的加密技术,相信会给客户带来价值的飞跃.
每次产品迭代都肩负着广大用户的殷切期望,为此,深思感谢大家多年来的包容及厚爱,不断督促我们推出更好的产品!
2020 年 10 月 10 日正式发布的 VBP 2,将给您带来更安全的软件保护技术及更好的用户体验!

VBP 2 硬核亮点:




 1   ARM 虚拟化


业界首次实现了针对 ARM 指令的虚拟机保护


 2   .NET 版新增功能


真正实现.NET软件安全:

  • .NET JIT 加密

  • .NET 压缩


 3   全新 Java 保护方案

极致操作体验及安全性


 4   内存校验

快速对抗文件补丁、内存补丁、软件断点


 5   反 Run Trace

增强混淆后代码的安全性



重磅一:增加 ARM 指令虚拟化




VBP 2 针对 IoT 设备的代码保护提供了更完善的保护方案,本次发版实现了针对 ARM 指令的虚拟机保护。

ARM 虚拟化是 VBP 2 针对 ARM 架构的指令推出的虚拟机保护方式,通过将原始的 ARM 指令进行翻译,转换为自定义的虚拟机指令,运行时在自定义虚拟机执行。支持对armv7(包括 thumb, thumb2)及 armv8 以上指令集进行翻译,安全强度高,可以更有效地保护广大 IoT 软件开发商的知识产权。



arm-vm.png

核心优势


对于 ARM 指令的代码保护,业内除了本产品外,大都采用基于 LLVM 的代码保护方案。虽然借助 LLVM 框架虽然可以轻松的支持后端指令架构,但在保护效果和易用性上要逊色不少。


产品对比

“基于 ARM 指令虚拟化的 VBP2” vs “基于 LLVM 的混淆方案”


易用性


Virbox Protector 2基于 LLVM 的代码保护
离线部署可直接离线使用一般由加固厂商提供设备
开发环境影响不需要配置编译环境需要配置编译环境


适应性


Virbox Protector 2基于 LLVM 的代码保护
支持的语言

支持几乎所有编译为 Native 程序的语

言如 C/C++, go, delphi, 汇编语言等

只支持 Clang 编译器支持的语言
支持的语言标准不区分具体语言,支持任意语言标准只支持对应版本的 clang 支持的语言标准


安全性


Virbox Protector 2基于 LLVM 的代码保护 
反编译效果无法被反编译可以被反编译
函数体边界

函数体保护后通过指令切片技术分布在二进制中

的随机位置,无法直接确定边界

由编译器生成,函数边界清晰,函数间调用关系清晰可见

保护粒度

以汇编指令为粒度,保护针对每个指令,保护

的灵活度和自由度高

以LLVM 中间语言 IR 为粒度,LLVM 后端会生成相应的

汇编指令,灵活度差


总结


- 基于 LLVM 的保护方案,可以直接适配其前端支持的语言和后端支持的平台架构,但也受限于这一特性(比如 Go、Rust、Delphi 等 语言就无法支持)。


- 基于 LLVM 的保护方案,在使用时需要更换已有的编译环境,替换编译器,调整编译选项等,对开发环境造成了很多影响,易用性差。


- 从保护效果上看,基于 LLVM 的保护方案,受限于编译器框架,生成的代码只能做逻辑上的混淆变换,仍然可以被反编译,对控制流的混淆效果有限,且边界清晰,更容易被分析。



重磅二:.NET 版新增功能





增加 .NET JIT 加密

VBP 2 对 .NET 的保护增加了新的保护方式:.NET JIT 加密,是将 .NET 所有方法的 IL 指令经过加密,仅在 .NET 虚拟机进行 JIT 编译阶段才解密,可以防止静态反编译,也能防止 IL 代码在内存被 Dump。JIT 加密可以配合代码混淆、代码加密、.NET 压缩一起使用,达到多层保护的效果,在兼顾性能的同时,更进一步提升保护后代码的安全性。


启用 “JIT 加密” 后,VBP 2 在进行保护时,会将 .NET 方法的 IL 字节码加密,并插入 VBP JIT HOOK 模块完成保护。


在运行阶段,.NET 虚拟机对原程序中的元数据等信息进行解析,最终需要在 JIT 阶段将 IL 方法进行编译,VBP JIT Hook 模块会在此时进行解密,使编译过程顺利进行。



增强 .NET 压缩

.NET 的压缩功能主要为 .NET 程序提供了整体保护的效果,将 .NET 元数据(Meta Data)信息抽取并压缩加密,运行时再由壳代码将其还原,使其能正常运行,可以有效防止 .NET 程序中的方法被 DnSpy,ILSpy,.NET Reflector 等工具反编译。

VBP 2 开始使用了 IL 壳代码,大幅度提升了兼容性,同时增加了对 dll 的保护支持。



核心优势

多重保护:VBP 2 可以对特定 .NET 方法使用代码混淆、代码加密的手段进行针对性保护,也可以用名称混淆、压缩、JIT加密的方式提供整体性的保护,保护效果可以叠加。


支持 .NET Core,部分功能支持 Linux 下 .NET Core。


保护效果

.NET 加密时配合使用 JIT 加密、代码混淆、代码加密、.NET 压缩同时使用,可对所有方法都加密。


原程序:

dotnet_raw.png


保护后效果:

dotnet_compress.png



重磅三:Java 保护方案




VBP 2 支持对 Java 的 jar 包、war 包进行保护。通过加密 Java 中每个方法的字节码防止反编译,操作简单,运行环境易部署,支持当前主流的 Windows、Linux、ARM Linux 平台。



VBP 1 的 Java 保护方案 vs VBP 2 全新 Java 保护方案

VBP 1 用资源加密的方式加密 Java 代码,开发商需要找到正确的 Java 解释器,部署也需要将加密后的 Java 解释器一起部署,操作复杂而且容易出错,不同的部署系统需要分别加密。


VBP 2 引入了全新的 Java 保护方案,在提升安全性的同时,加密操作体验大幅提升,1 分钟完成加密部署!而且一次加密即可支持主流平台部署:Windows/Linux/ARM-Linux。


VBP 2 Java 保护同时支持了加密应用场景:开发 jar 包给第三方进行调用,对 jar 进行加密。



操作体验质的提升

直接拖入 jar 包,点击保护选中项目即可生成加密后的 jar 包,VBP 2 会对 Java class 中的所有方法的字节码加密,在运行时通过 Java agent 机制在 native 层解密 Java 方法中的字节码,再传递给 jvm 编译生成机器指令执行。



vbp-jar.png


保护效果


使用 jd-gui 对 jar 包反编译效果:


java-decompile.png


使用 VBP 2 保护后的 jar 包反编译效果:

java-vbp-decompile.png


其他主要更新





本地程序内存校验

内存校验是一种检测程序自身完整性的技术,可以有效对抗文件补丁、内存补丁、软件断点等破解手段,这是很多软件开发商期待的功能,本次发版也将支持本地可执行程序的内存校验功能,同时内存校验还支持 SDK 标签,可以在运行过程时动态地校验。


在加壳保护时,VBP 2 会抽取整个程序中可校验的内存块并拆分,生成校验表。运行时,在程序入口,壳代码会对每个要校验的内存块进行校验,以验证其完整性,如果校验失败,则会清场退出。如果使用了 SDK 标签,则每次调用标签 VBProtectVerifyImage 时都会进行校验。(内存校验表和校验逻辑本身经过了自保护,以保证其安全性。)



反 Run Trace 功能

Run Trace 是调试器提供的功能,用于单步执行每一条指令,并记录每条指令执行时的寄存器状态,是调试追踪和反混淆常用的手段。


被 VBP 2 混淆后的函数的指令,会添加一些暗桩用于检测单步断点,检测到非法调试会执行一些错误的指令,干扰调试分析,从而进一步增强混淆后代码的安全性。


新版优惠活动


 1   新客户购买优惠活动



优惠活动 1 :订阅版赠送一个月

活动时间:2020年10月12日-2020年10月31日


适用产品:VBP 2

活动介绍


新客户第一次购买订阅版一年期,赠送一个月使用授权


优惠活动 2 :  永久期九折


   活动时间:2020年10月12日-2020年10月31日

适用产品:VBP 2

活动介绍

新客户第一次购买永久期VBP 2,九折优惠

活动说明:如参与其他优惠折扣,本活动不与其他活动同时参与!

如何升级 VBP 2



官网下载地址:

https://shell.virbox.com/down.html




 

注册开发者账号,获取整套加密 SDK

免费注册  *限时赠送30条许可*