Bibliothèque de protection Java
Protéger la bibliothèque Java avec un outil GUI
Accédez au dossier Protector4J, exécutez p4j-ui[.exe]Vous verrez alors l'interface utilisateur suivante.

Pour les utilisateurs de macOS, il suffit de double-cliquer sur Protector4J.app comme pour une application Mac classique.
Se connecter
Si vous avez déjà acheté une licence, veuillez cliquer sur le bouton de connexion en haut à droite et saisir vos identifiants. Si vous n'avez pas de licence, vous pouvez tout de même essayer cet outil.
La fonctionnalité de protection de la bibliothèque Java nécessite l'édition Enterprise.

Type d'application de sélection
Cliquez sur le bouton « Bibliothèque Java » sur la page de type d'application

Sélectionnez le fichier jar/war à chiffrer
Sélectionnez les fichiers jar/war que vous souhaitez chiffrer ; vous pouvez sélectionner un ou plusieurs fichiers.

Spécifiez la méthode de chiffrement
Sur cette page, vous pouvez sélectionner la méthode de chiffrement.

Vous pouvez sélectionner les classes et les méthodes à protéger dans le répertoire de structure situé à droite, ou vous pouvez saisir manuellement les éléments à protéger au format suivant.
# Protect a method
# Class name.method name&method signature
Hello.hello&()V
# Protect all methods under the class
# Directly input the class name
Hello
Vous pouvez saisir le contenu à exclure dans la section « Éléments à exclure » en utilisant le même format.
Protéger la bibliothèque Java avec l'outil CLI
fichier de configuration
L'outil CLI nécessite de spécifier un fichier de tâches en tant que paramètre.
Allez à protector4j/task-templates dossier, trouver java-lib-task.yml, copiez-en un et modifiez-le.
# 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
Exécuter la tâche de chiffrement
Accédez au dossier Protector4J et exécutez la commande suivante.
Linux ou macOS
Pour les utilisateurs de macOS, l'outil CLI est disponible à l'adresse suivante : /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
Vous pouvez exécuter p4j --help pour consulter les paramètres détaillés.
Le résultat du chiffrement
Contrairement au chiffrement global des applications Java, le chiffrement des bibliothèques Java cible des méthodes spécifiques. Une fois le chiffrement terminé, la méthode sélectionnée est convertie en code natif, utilisable avec un JRE standard. Si un utilisateur souhaite la déchiffrer, il doit le faire au niveau binaire et non au niveau du bytecode, ce qui augmente considérablement la difficulté de la tâche.
Avant le chiffrement

Après chiffrement

Une fois le chiffrement terminé, la méthode principale est convertie en méthode native.
Limites
- Ne prend pas en charge les blocs de code try-catch.
- Les fichiers jar ne sont-ils pas empaquetés par Spring Boot ?
- Les fichiers war ne sont-ils pas pris en charge ?
Application de démonstration
Actuellement, la fonction de chiffrement de la bibliothèque Java ne propose pas d'essai gratuit. Vous pouvez télécharger cette application de démonstration pour observer son fonctionnement. Il s'agit d'un programme SwingApp. java -jar swingapp.jar Pour l'exécuter, sa fonction principale est convertie en une méthode native ; vous pouvez utiliser l'outil de décompilation pour vérification !
Application non chiffrée
Application cryptée