Java-BCE版和VME版的区别
#
Java BCE 保护加密 Class 文件中每个方法的 Java 字节码,运行时在 Java agent 中动态解密。
#
Java VME 保护不同于简单的加密壳,Virbox Protector Java VME 保护技术是将 Java 方法的字节码转换为自定义的虚拟机字节码,并将其替换为跳转代码,运行时跳转至自定义虚拟机中解释执行。
#
两者的区别适用场景 | 优点 | 缺点 | |
---|---|---|---|
Java-BCE | 1.安全诉求适中; 2.需要保护嵌套内的jar包 | 1.性能损失小;2. 无法直接反编译出方法中的代码逻辑。 | 1. 需要修改或环境运行环境;2. 无法被其它 Java 项目引用;3.可以被 arthas 或 sa-jdi等工具导出 class 文件。 |
Java-VME | 1.安全诉求要求高; 2.支持jar包加密后的二次开发; | 1. 安全性极高,无法被任何工具还原,逆向分析难度极高;2.无需修改或配置运行环境,操作简单; 3.可以被其它 Java 项目引用;4.加密后可以打包成exe。 | 1.有一定的性能损耗;2. 不支持反射方式的函数保护。 |