Proteger Biblioteca Java

Proteger Biblioteca Java con Herramienta GUI

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

image-20241222183944773

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

Iniciar sesión

Si ya ha comprado 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 una licencia, aún puede probar esta herramienta.

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

Seleccionar Tipo de Aplicación

Haga clic en el botón "Java Library" 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

Especificar el método de cifrado

En esta página puede seleccionar el método de cifrado

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 a excluir en los Elementos a excluir usando el mismo formato.

Proteger Biblioteca Java con Herramienta CLI

Archivo de configuración

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

Vaya a la carpeta protector4j/task-templates, encuentre java-lib-task.yml, cópielo y modifíquelo.

# 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 de Protector4J y ejecute el siguiente comando.

Linux o macOS

Para 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

Windows

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

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

El resultado del Cifrado

A diferencia del cifrado general de aplicaciones Java, el cifrado de bibliotecas Java se dirige a métodos específicos. Después de completar el cifrado, el método que seleccionó se convertirá en código nativo, que puede usarse junto con un JRE estándar. Si los usuarios necesitan crackearlo, deben hacerlo a nivel binario en lugar del nivel de bytecode, aumentando significativamente la dificultad de crackeo.

Antes del cifrado

image-20250204115631030

Después del cifrado

image-20250204115731661

Después de completar el cifrado, el método Main se convierte en un método nativo.

Limitaciones

  1. No soporta bloques de código try-catch.
  2. No soporta archivos jar empaquetados con Spring Boot.
  3. No soporta archivos war.

Aplicación Demo

Actualmente la función de cifrado de Biblioteca Java no soporta prueba gratuita para usuarios, puede descargar esta aplicación demo para ver el efecto del cifrado de bibliotecas Java, este es un programa swingapp, puede usar java -jar swingapp.jar para ejecutarlo, su función principal se convierte en un método nativo, ¡puede usar la herramienta decompiladora para verificación!

Aplicación sin cifrar

swing-plain.jar

Aplicación cifrada

swing-encrypted.jar