Java 程序可以构建为 jar 包、war 包或 class 文件,但其核心都是 class 文件,每个 class 文件包含了类、方法、成员等信息,运行时由 Java 虚拟机加载每个类,编译成平台相关的 CPU 指令执行或直接解释执行。

Java程序太容易被反编译了,目前市面上能有效防止代码不被反编译出的技术是虚拟化保护,使用虚拟化保护后的代码可以有效防止目前市面的反编译工具。

虚拟化保护

将 Java 方法的字节码转换为自定义的虚拟机字节码,并将其替换为跳转代码,运行时跳转至自定义虚拟机中解释执行。

Java加密怎么做才能不被反编译_java

虚拟化保护特点

  • 安全性极高,无法被任何工具还原,逆向分析难度极高
  • 无需修改或配置运行环境
  • 可以被其它 Java 项目引用
  • 支持 Windows、Linux、macOS、ARM Linux、ARM macOS 等主流操作系统。

虚拟化保护jar效果

保护前:

Java加密怎么做才能不被反编译_java_02

保护后:

Java加密怎么做才能不被反编译_虚拟化_03