Skip to main content

Java-BCE版和VME版的区别

Java BCE 保护#

加密 Class 文件中每个方法的 Java 字节码,运行时在 Java agent 中动态解密。

Java VME 保护#

不同于简单的加密壳,Virbox Protector Java VME 保护技术是将 Java 方法的字节码转换为自定义的虚拟机字节码,并将其替换为跳转代码,运行时跳转至自定义虚拟机中解释执行。

两者的区别#

适用场景优点缺点
Java-BCE1.安全诉求适中; 2.需要保护嵌套内的jar包1.性能损失小;2. 无法直接反编译出方法中的代码逻辑。1. 需要修改或环境运行环境;2. 无法被其它 Java 项目引用;3.可以被 arthas 或 sa-jdi等工具导出 class 文件。
Java-VME1.安全诉求要求高; 2.支持jar包加密后的二次开发;1. 安全性极高,无法被任何工具还原,逆向分析难度极高;2.无需修改或配置运行环境,操作简单; 3.可以被其它 Java 项目引用;4.加密后可以打包成exe。1.有一定的性能损耗;2. 不支持反射方式的函数保护。