Защита Java-библиотеки
Защита Java-библиотеки с помощью графического инструмента
Перейдите в папку Protector4J, запустите p4j-ui[.exe], и вы увидите следующий пользовательский интерфейс.

Для пользователей macOS просто дважды щёлкните на Protector4J.app, как на обычное Mac-приложение.
Вход в систему
Если вы уже приобрели лицензию, нажмите на кнопку входа в правом верхнем углу и введите данные пользователя. Если у вас нет лицензии, вы всё равно можете попробовать этот инструмент.
Функция защиты Java-библиотек требует редакцию Enterprise.

Выбор типа приложения
Нажмите на кнопку «Java Library» на странице выбора типа приложения.

Выберите 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
Вы можете ввести элементы для исключения в поле «Items to exclude», используя тот же формат.
Защита Java-библиотеки с помощью инструмента командной строки
Конфигурационный файл
Инструменту командной строки необходимо указать файл задачи в качестве параметра.
Перейдите в папку 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 инструмент командной строки находится в /Applictions/Protector4J.app/Contents/protector4j-mac.
./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 преобразуется в нативный метод.
Ограничения
- Не поддерживает блоки try-catch.
- Не поддерживает jar-файлы, упакованные Spring Boot.
- Не поддерживает war-файлы.
Демо-приложение
В настоящее время функция шифрования Java-библиотеки недоступна для бесплатной пробной версии. Вы можете скачать это демо-приложение, чтобы увидеть эффект шифрования Java-библиотеки. Это программа на swing — вы можете запустить её командой java -jar swingapp.jar. Её основная функция преобразована в нативный метод — вы можете проверить это с помощью инструмента декомпиляции!
Незашифрованное приложение
Зашифрованное приложение