Proteggi la libreria Java

Proteggi la libreria Java con lo strumento GUI

Vai alla cartella Protector4J, esegui p4j-ui[.exe], vedrai la seguente interfaccia utente.

image-20241222183944773

Per gli utenti macOS, è sufficiente fare doppio clic su Protector4J.app come una normale applicazione Mac.

Login

Se hai già acquistato la licenza, clicca sul pulsante di login nell'angolo in alto a destra e inserisci le tue informazioni utente. Se non hai una licenza, puoi comunque provare questo strumento.

La funzionalità di protezione della libreria Java richiede l'edizione Enterprise.

Selezione Tipo di Applicazione

Fare clic sul pulsante "Libreria Java" nella pagina del tipo di applicazione

Selezionare il file jar/war che deve essere crittografato

Seleziona i file jar/war che vuoi crittografare, puoi selezionare uno o più file

Specificare il metodo da crittografare

In questa pagina puoi selezionare il metodo di crittografia

image-20241222111100288

È possibile selezionare le classi e i metodi che necessitano di protezione dalla directory della struttura sulla destra oppure immettere manualmente gli elementi che necessitano di protezione nel formato seguente.

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

È possibile immettere il contenuto da escludere negli Elementi da escludere utilizzando lo stesso formato.

Proteggi la libreria Java con lo strumento CLI

File di configurazione

Lo strumento CLI deve specificare un file di attività come parametro.

Vai al protector4j/task-templates cartella, trova java-lib-task.yml, copiarne e modificarne 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

Eseguire l&#39;attività di crittografia

Andare alla cartella Protector4J ed eseguire il seguente comando.

Linux o macOS

Per gli utenti macOS, è possibile trovare lo strumento CLI all&#39;indirizzo /Applictions/Protector4J.app/Contents/protector4j-mac.

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

Finestre

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

Puoi eseguire p4j --help per visualizzare i parametri dettagliati.

Il risultato della crittografia

A differenza della crittografia generale delle applicazioni Java, la crittografia della libreria Java ha come target metodi specifici. Dopo il completamento della crittografia, il metodo selezionato verrà convertito in codice nativo, che può essere utilizzato insieme a un JRE standard. Se gli utenti devono decifrarlo, devono farlo a livello binario anziché a livello di bytecode, aumentando significativamente la difficoltà di decifrarlo.

Prima della crittografia

image-20250204115631030

Dopo la crittografia

image-20250204115731661

Una volta completata la crittografia, il metodo Main viene convertito in un metodo nativo.

Limitazioni

  1. Non supporta blocchi di codice try-catch.
  2. Spring Boot non esegue il pacchetto dei file jar.
  3. Non file di guerra

Applicazione demo

Attualmente la funzione di crittografia della libreria Java non supporta la prova gratuita per gli utenti, puoi scaricare questa applicazione demo per vedere l&#39;effetto della crittografia della libreria Java, questo è un programma swingapp, puoi utilizzare java -jar swingapp.jar per eseguirlo, la sua funzione principale viene convertita in un metodo nativo, puoi usare lo strumento decompilatore per la verifica!

Applicazione non crittografata

swing-plain.vaso

Applicazione crittografata

swing-criptato.jar