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 accesso in alto a destra e inserisci i tuoi dati utente. Se non hai una licenza, puoi comunque provare questo strumento.

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

Tipo di applicazione di selezione

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

Seleziona 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, copiane e modificane 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

Esegui 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 delle librerie Java si basa su metodi specifici. Una volta completata la crittografia, il metodo selezionato verrà convertito in codice nativo, che può essere utilizzato insieme a un JRE standard. Se gli utenti hanno bisogno di decifrarlo, devono farlo a livello binario anziché a livello di bytecode, il che aumenta significativamente la difficoltà di decifratura.

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 i blocchi di codice try-catch.
  2. Spring Boot non esegue i file jar confezionati.
  3. Non supporta i 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 usare 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.jar

Applicazione crittografata

swing-encrypted.jar