Virbox Protector Java 程序保护

新发版 VBP VME版,支持Java 虚拟化保护

Java 程序简介

Java 是上世纪90年代初由 SUN 公司开发的一种面向对象编程语言,因其语法简单、跨平台、拥有丰富又成熟的框架,开发效率高,在服务端应用、Web 应用等领域形成了巨大优势,成为目前主流的几种开发语言一。

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

Java 程序的安全问题

Java class 文件中包含了类、方法、成员信息以及调试信息,编译生成的 jvm 字节码与这些信息关联,反编译后几乎与源代码相同。

Java 程序一但对外发布,相当于开放源代码,一些程序包含了开发者知识产权的重要信息,泄露后可能会给开发者造成损失。

几种保护技术对比

对 Java 程序的保护,有以下几种方式:

Virbox Protector 的 Java 保护方案

为应对不同场景的需求,Virbox Protector 提供了两种保护方式,Java BCE  以及 Java VME,分别使用了方法加密和代码虚拟化的保护方式。

Java BCE

技术原理

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

Java VME

技术原理

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

版本选择

Java-BCE

价格:3999¥ / 年

场景:对 Java 项目保护,无高安全性诉求

Java-VME

价格:9999¥ / 年

场景:对 Java SDK (Jar 包)保护,向第三方发布对部分代码有高安全性诉求,其它代码无保护需求

Java-BCE & Java-VME

价格:12999¥ / 年

场景:对 Java 整个项目保护对部分代码有高安全性诉求,其它代码有保护需求,以平衡性能和安全性

产品亮点

  • 安全性高

高强度的 Java 虚拟化保护,将 JVM 字节码转换为自定义虚拟机指令,保护后不可被还原,逆向难度极高。

  • 多平台支持

支持 Windows、Linux、macOS、ARM Linux、ARM macOS 等主流操作系统。

  • 保护过程可自动化

调整保护选项后生成配置文件,可以通过命令行自动完成保护。

  • 灵配灵活

可以自由选择要保护的 Java 方法,平衡安全性与性能。

最佳实践

场景1:对 Java 项目保护

Virbox Protector 支持 Java BCE 以及 Java VME 两种方式保护 Java 程序,各自存在优缺点:Java BCE 的安全性不如 Java VME,但性能影响小,而 Java VME 安全性极高,但存在性能损失。

下面介绍如何组合这两种保护方式,保护 Java 项目。

1、保护安全性要求高的 JAR 包(Java VME 功能,如果没有该需求则跳过)

确定对 Java 项目中,安全要求高的 JAR 包,一般剔除第三方库和框架(如 Json、spring framework等),选择自己开发的 Jar 包。

保护步骤:

  • 直接用 Virbox Protector 打开要保护的 JAR 包。
  • 在 “函数选项” 选择重点保护的类或方法,右键选择“代码虚拟化”,然后“确定”。
  • 点击保护生成保护后的 Jar 包。

2、保护其它需要保护的 Jar、War、Class 文件(Java BCE 功能,如果没有该需求则跳过)

Java BCE 性能影响小,因此可以大范围使用。

保护步骤:

  • 选择整个 Java 项目(文件夹),在 Virbox Protector 中打开。
  • 在“加密选项”中的“待保护文件列表”中,添加要保护的 Jar、War 或 Class文件(支持嵌套的 Jar 包)。
  • 点击保护生成保护后的 Java 项目。

3、替换 Jar 包

如果在 1 中进行了保护,需要把 1 中生成的 Jar 包替换进项目中。

4、配置运行参数(如果在 2 中进行了保护,需要配置运行 Java 参数,否则跳过该步骤)

修改 Java 启动参数,添加选项 -javaagent:sjt_agent.jar ,tomcat 等环境需要修改 setenv 等配置文件,请参考使用文档。

场景2:对 JAR SDK 保护

对外发布的 Jar SDK,要求第三方可以引用,且不需要额外的配置,因此需要 Java VME 的方式保护。

保护步骤:

  • 直接用 Virbox Protector 打开要保护的 JAR 包。
  • 在 “函数选项” 选择重点保护的类或方法,右键选择“代码虚拟化”,然后“确定”。
  • 点击保护生成保护后的 Jar 包。

所有文章
×

还剩一步!

确认邮件已发至你的邮箱。 请点击邮件中的确认链接,完成订阅。

好的