保护 Java 库
使用 GUI 工具保护 Java 库
进入 Protector4J 文件夹,执行 p4j-ui[.exe],您将看到如下用户界面。

macOS 用户只需像普通 Mac 应用程序一样双击 Protector4J.app 即可。
登录
如果您已购买许可证,请点击右上角的登录按钮并输入您的用户信息。如果没有许可证,您仍然可以试用此工具。
Java 库保护功能需要企业版。

选择应用类型
在应用类型页面点击 "Java Library" 按钮

选择需要加密的 jar/war 文件
选择您要加密的 jar/war 文件,可以选择一个或多个文件

指定加密方法
在此页面您可以选择加密方法

您可以从右侧的结构目录中选择需要保护的类和方法,也可以按以下格式手动输入需要保护的项目。
# 保护一个方法
# 类名.方法名&方法签名
Hello.hello&()V
# 保护类下的所有方法
# 直接输入类名
Hello
您可以使用相同的格式在排除项中输入要排除的内容。
使用 CLI 工具保护 Java 库
配置文件
CLI 工具需要指定任务文件作为参数。
进入 protector4j/task-templates 文件夹,找到 java-lib-task.yml,复制并修改。
# 需要加密的 jar 文件
jarFiles: []
# 保护一个方法: 方法名&方法签名, 如 io.test.Hello.hello&()V
# 保护类中的所有方法: 类名, 如 io.test.Hello
itemsToProtect: []
# 排除不加密的项目,格式与 itemsToProtect 相同
itemsToExclude: []
# 输出文件夹
outputFolder: ''
# 为应用程序创建新的唯一文件夹,文件夹名类似 p4j-<taskId>
createNewFolder: true
执行加密任务
进入 Protector4J 文件夹,执行以下命令。
Linux 或 macOS
macOS 用户可以在 /Applictions/Protector4J.app/Contents/protector4j-mac 找到 CLI 工具。
./p4j -t java-lib -f path-of-task-file -u email -p password
Windows
p4j -t java-lib -f path-of-task-file -u email -p password
执行 p4j --help 查看详细参数。
加密结果
与 Java 应用程序的整体加密不同,Java 库加密针对的是特定方法。加密完成后,您选择的方法将被转换为原生代码,可以与标准 JRE 配合使用。如果用户需要破解,必须在二进制级别进行,而非字节码级别,这大大增加了破解难度。
加密前

加密后

加密完成后,Main 方法被转换为 native 方法。
限制
- 不支持 try-catch 代码块。
- 不支持 Spring Boot 打包的 jar 文件。
- 不支持 war 文件。
演示应用程序
目前 Java 库加密功能不支持免费用户试用,您可以下载该演示应用程序查看 Java 库加密的效果。这是一个 Swing 应用程序,您可以使用 java -jar swingapp.jar 运行它,其主要功能已转换为 native 方法,您可以使用反编译工具进行验证!
未加密的应用程序
加密后的应用程序