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

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

选择申请类型
在应用程序类型页面上,点击“Java 库”按钮。

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

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

您可以从右侧的结构目录中选择需要保护的类和方法,或者您可以按以下格式手动输入需要保护的项目。
# Protect a method
# Class name.method name&method signature
Hello.hello&()V
# Protect all methods under the class
# Directly input the class name
Hello
您可以使用相同的格式在“要排除的项目”中输入要排除的内容。
使用 CLI 工具保护 Java 库
配置文件
CLI 工具需要指定一个任务文件作为参数。
前往 protector4j/task-templates 文件夹,查找 java-lib-task.yml复制并修改一个。
# The jar files that need to be encrypted
jarFiles: []
# Protect a method: MethodName&MethodSignature, like io.test.Hello.hello&()V
# Protect all methods in a Class: ClassName, like io.test.Hello
itemsToProtect: []
# Exclude items that are not encrypted in the same format as itemsToProtect.
itemsToExclude: []
# The output folder
outputFolder: ''
# Create a new and unique folder for the application, the folder name is like p4j-<taskId>
createNewFolder: true
执行加密任务
进入 Protector4J 文件夹并执行以下命令。
Linux 或 macOS
macOS 用户可以在以下位置找到 CLI 工具: /Applictions/Protector4J.app/Contents/protector4j-mac。
./p4j -t java-lib -f path-of-task-file -u email -p password
视窗
p4j -t java-lib -f path-of-task-file -u email -p password
您可以执行 p4j --help 查看详细参数。
加密的结果
与 Java 应用程序的整体加密不同,Java 库加密针对的是特定方法。加密完成后,您选择的方法将被转换为本地代码,可与标准 JRE 一起使用。如果用户需要破解它,则必须在二进制级别而非字节码级别进行破解,这大大增加了破解难度。
加密前

加密后

加密完成后,Main 方法被转换为本地方法。
局限性
- 不支持 try-catch 代码块。
- Spring Boot 不打包 jar 文件吗?
- 战争文件
演示应用程序
目前 Java 库加密功能不支持免费用户试用,您可以下载此演示应用程序来查看 Java 库加密的效果,这是一个 Swing 应用程序,您可以使用 java -jar swingapp.jar 为了运行它,它的主要函数被转换成了一个本地方法,你可以使用反编译器工具进行验证!
未加密应用程序
加密应用程序