Защита приложений Spring Boot

Видео для начала работы

▶️ YouTube

▶️ Bilibili

Скачать

Посетите https://protector4j.com/download, чтобы скачать последнюю версию

Установка

Windows и Linux

Специальных шагов установки нет, просто скачайте архив и распакуйте его.

macOS

Скачайте dmg-файл и перетащите Protector4J в Applications. Фактическое содержимое этого инструмента находится в /Applications/Protector4J.app/Contents/protector4j-mac

Шифрование приложений Spring Boot с помощью графического инструмента

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

Для пользователей macOS просто дважды щёлкните на Protector4J.app, как на обычное Mac-приложение.

Вход в систему

Если вы уже приобрели лицензию, нажмите на кнопку входа в правом верхнем углу и введите данные пользователя. Если у вас нет лицензии, вы всё равно можете попробовать этот инструмент.

Выбор типа приложения

Нажмите на кнопку «Spring Boot Application» на странице выбора типа приложения.

Выберите jar/war-файлы для шифрования

Выберите jar/war-файлы, которые вы хотите зашифровать — можно выбрать один или несколько файлов.

Опции

Только шифрование jar-файлов

Шифровать только jar-файлы без развёртывания полного JRE. Эта опция обычно используется в сочетании с функцией KeySeed для обновления существующих программ.

Создание исполняемого файла

Создайте исполняемый файл для запуска приложения; не добавляйте расширение .exe.

Скрытая консоль

Эта опция действует только для GUI-программ в Windows и используется для скрытия окна командной строки во время выполнения программы.

Параметры JVM

Задайте параметры JVM, такие как -Xmx и -Xms, разделённые пробелами или переносами строк.

Вывод

Выбор версии Java

Выберите версию Java: поддерживаются Java 8, Java 11, Java 17 и Java 21.

Создать новую папку

Выбрано по умолчанию. Задача шифрования создаст файл с именем p4j-[task-id] в папке вывода. Результат сохраняется в этой папке.

Включение JavaFX

Если это JavaFX-приложение, выберите эту опцию.

SWT-приложение

Если это SWT-приложение, выберите эту опцию.

KeySeed

По умолчанию задача шифрования запрашивает случайный ключ с сервера. Файлы, сгенерированные в разных задачах шифрования, не могут использоваться вместе. Если указан KeySeed, одинаковый KeySeed генерирует одинаковый ключ шифрования. Эту опцию можно использовать с предыдущей опцией «Только шифрование jar-файлов» для обновления существующих приложений. Эта опция доступна только для лицензированных пользователей.

Выполнение задачи шифрования

Подождите некоторое время. После завершения задачи шифрования вы сможете увидеть результат зашифрованного приложения в папке вывода.

Запуск зашифрованных приложений

Существует три способа запуска зашифрованного приложения:

  1. Запуск с помощью exe-файла

Если целевая платформа — Windows, вы можете запустить зашифрованное приложение с помощью исполняемого файла, созданного в процессе шифрования.

  1. Запуск с помощью скрипта

Если целевая платформа — Linux или macOS, вы найдёте файл скрипта с именем exe-name.sh, с помощью которого можно запустить приложение.

  1. Запуск программы традиционной командой Java

Вы также можете вручную запустить программу через vlxjre/bin/java — формат этой команды такой же, как и у обычной команды java.

В директории вывода вы увидите папку vlxjre — это наш настроенный JRE, а зашифрованные jar-файлы хранятся в папке vlxlib.

vlxjre/bin/java -jar vlxlib/xxx.jar
vlxjre/bin/java -cp vlxlib/xxx.jar MainClass
vlxjre/bin/java -cp "vlxlib/*" MainClass
vlxjre/bin/java -Xms512M -Xmx1024m -cp "vlxlib/*" MainClass

Java 8 в настоящее время не поддерживает запуск через vlxjre/bin/java -jar. Пожалуйста, используйте vlxjre/bin/java -cp xx MainClass

Замечания

Если целевая платформа программы — macOS или Linux, но сборка выполнялась на Windows, перед первым запуском выполните add-executable-permission.sh на целевой платформе для предоставления прав на выполнение.

Изменение параметров JVM для exe-файла

Windows

Для изменения параметров JVM exe-файла отредактируйте exe-name.json и измените значения в массиве JArgs.

"JArgs": [
  "-DParam1=value1",
  "-DParam2=value2"
]

Linux и macOS

Просто откройте файл скрипта и добавьте или измените параметры JVM.

Шифрование приложений Spring Boot с помощью инструмента командной строки

Конфигурационный файл

Инструменту командной строки необходимо указать файл задачи в качестве параметра.

Перейдите в папку protector4j/task-templates, найдите spring-boot-task.yml, скопируйте и отредактируйте его.

# Available values: 8,11,17,21
javaVersion: 17

# The jar file of spring boot application
springBootJarFile: ''
# Only encrypt the jar files, do not deploy the runtime
# This option is used while upgrading an existing application
onlyEncryptJarFiles: false

## [ Executable file information ]
# The executable file name
exeFileName: ''
# Hide command line window, only valid for Windows
hideConsole: false
# The splash image
splash: ''
# JVM Options
jvmOptions: []

## [ Output Options ]
# The output folder
outputFolder: ''
# Create a new and unique folder for the application, the folder name is like p4j-<taskId>
createNewFolder: true
# Whether this is a JavaFX application
includeJavaFX: false
# Whether this a swt gui application
swtApplication: false
# Fixed key seed, only avaiable for licensed user
# Jars encrypted in different tasks can be used together with same key seed
keySeed: ''
# The target platforms, keep it empty for current plaform,
# available values: [win, linux, mac]
platforms: []

## [ Windows exe file information (Optional and only valid for Windows) ]
icon: ''
productName: ''
productVersion: ''
fileVersion: ''
fileDescription: ''
companyName: ''
legalCopyright: ''

Выполнение задачи шифрования

Перейдите в папку Protector4J и выполните следующую команду.

Linux или macOS

Для пользователей macOS инструмент командной строки находится в /Applictions/Protector4J.app/Contents/protector4j-mac.

./p4j -t spring-boot -f path-of-task-file

Windows

p4j -t spring-boot -f path-of-task-file

Выполните p4j --help для просмотра подробных параметров.

Запуск с данными учётной записи

./p4j -t spring-boot -f path-of-task-file -u email -p password

Просмотр результатов

После завершения задачи шифрования перейдите в папку вывода, чтобы проверить результаты.

Запуск зашифрованных приложений

Существует три способа запуска зашифрованного приложения:

  1. Запуск с помощью exe-файла

Если целевая платформа — Windows, вы можете запустить зашифрованное приложение с помощью исполняемого файла, созданного задачей шифрования.

  1. Запуск с помощью скрипта

Если целевая платформа — Linux или macOS, вы найдёте файл скрипта с именем exe-name.sh, с помощью которого можно запустить приложение.

  1. Запуск программы традиционной командой Java

Вы также можете вручную запустить программу через vlxjre/bin/java — формат этой команды такой же, как и у обычной команды java.

В директории вывода вы увидите папку vlxjre — это наш настроенный JRE, а зашифрованные jar-файлы хранятся в папке vlxlib.

vlxjre/bin/java -jar vlxlib/xxx.jar
vlxjre/bin/java -cp vlxlib/xxx.jar MainClass
vlxjre/bin/java -cp "vlxlib/*" MainClass
vlxjre/bin/java -Xms512M -Xmx1024m -cp "vlxlib/*" MainClass

Java 8 в настоящее время не поддерживает запуск через vlxjre/bin/java -jar. Пожалуйста, используйте vlxjre/bin/java -cp xx MainClass

Замечания

Если целевая платформа программы — macOS или Linux, но сборка выполнялась на Windows, перед первым запуском выполните add-executable-permission.sh на целевой платформе для предоставления прав на выполнение.