Proteger la biblioteca Java

Proteger la biblioteca Java con la herramienta GUI

Vaya a la carpeta Protector4J, ejecute p4j-ui[.exe]Verá la siguiente interfaz de usuario.

image-20241222183944773

Para los usuarios de macOS, simplemente haga doble clic en Protector4J.app como una aplicación normal de Mac.

Acceso

Si ya adquirió la licencia, haga clic en el botón de inicio de sesión en la esquina superior derecha e ingrese su información de usuario. Si no tiene licencia, aún puede probar esta herramienta.

La función de protección de la biblioteca Java requiere la edición Enterprise.

Selección Tipo de aplicación

Haga clic en el botón "Biblioteca Java" en la página de tipo de aplicación

Seleccione el archivo jar/war que necesita ser cifrado

Seleccione los archivos jar/war que desea cifrar, puede seleccionar uno o varios archivos

Especifique el método para cifrar

En esta página puede seleccionar el método para cifrar

image-20241222111100288

Puede seleccionar las clases y métodos que necesitan protección desde el directorio de estructura a la derecha, o puede ingresar manualmente los elementos que necesitan protección en el siguiente formato.

# Protect a method
# Class name.method name&method signature
Hello.hello&()V
# Protect all methods under the class
# Directly input the class name
Hello

Puede ingresar el contenido que desea excluir en Elementos a excluir utilizando el mismo formato.

Proteger la biblioteca Java con la herramienta CLI

Archivo de configuración

La herramienta CLI necesita especificar un archivo de tarea como parámetro.

Ir a la protector4j/task-templates carpeta, buscar java-lib-task.yml, copiar y modificar uno.

# 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

Ejecutar tarea de cifrado

Vaya a la carpeta Protector4J y ejecute el siguiente comando.

Linux o macOS

Para los usuarios de macOS, puede encontrar la herramienta CLI en /Applictions/Protector4J.app/Contents/protector4j-mac.

./p4j -t java-lib -f path-of-task-file -u email -p password

Ventanas

p4j -t java-lib -f path-of-task-file -u email -p password

Puedes ejecutar p4j --help para ver los parámetros detallados.

El resultado del cifrado

A diferencia del cifrado general de las aplicaciones Java, el cifrado de bibliotecas Java se centra en métodos específicos. Una vez completado el cifrado, el método seleccionado se convertirá a código nativo, que puede utilizarse junto con un JRE estándar. Si los usuarios necesitan descifrarlo, deben hacerlo a nivel binario en lugar de a nivel de bytecode, lo que aumenta significativamente la dificultad de descifrado.

Antes del cifrado

image-20250204115631030

Después del cifrado

image-20250204115731661

Una vez completado el cifrado, el método principal se convierte en un método nativo.

Limitaciones

  1. No admite bloques de código try-catch.
  2. ¿Spring Boot no empaqueta archivos jar?
  3. No guarda archivos

Aplicación de demostración

Actualmente, la función de cifrado de la biblioteca Java no admite la prueba de usuario gratuita, puede descargar esta aplicación de demostración para ver el efecto del cifrado de la biblioteca Java, este es un programa swingapp, puede usarlo java -jar swingapp.jar Para ejecutarlo, su función principal se convierte en un método nativo. ¡Puedes usar la herramienta de descompilación para verificarlo!

Aplicación sin cifrar

swing-plain.jar

Aplicación cifrada

swing-encrypted.jar