Protéger la bibliothèque Java
Protégez la bibliothèque Java avec l'outil GUI
Allez dans le dossier Protector4J, exécutez p4j-ui[.exe], vous verrez l'interface utilisateur suivante.
Pour les utilisateurs de macOS, double-cliquez simplement sur Protector4J.app comme une application Mac classique.
Se connecter
Si vous avez déjà acheté la licence, veuillez cliquer sur le bouton de connexion dans le coin supérieur droit et saisir vos informations d'utilisateur. Si vous n'avez pas de licence, vous pouvez toujours 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 du type d'application
Sélectionnez le fichier jar/war qui doit être crypté
Sélectionnez les fichiers jar/war que vous souhaitez crypter, vous pouvez sélectionner un ou plusieurs fichiers
Spécifiez la méthode de cryptage
Sur cette page, vous pouvez sélectionner la méthode de cryptage
Vous pouvez sélectionner les classes et les méthodes qui nécessitent une protection à partir du répertoire de structure sur la droite, ou vous pouvez saisir manuellement les éléments qui nécessitent une protection dans le 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 les éléments à exclure en utilisant le même format.
Protégez la bibliothèque Java avec l'outil CLI
Fichier de configuration
L'outil CLI doit spécifier un fichier de tâche comme paramètre.
Aller à la protector4j/task-templates
dossier, trouver java-lib-task.yml
, copier et modifier un.
# 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, vous pouvez trouver l'outil CLI à l'adresse /Applictions/Protector4J.app/Contents/protector4j-mac
.
./p4j -t java-lib -f path-of-task-file -u email -p password
Fenêtres
p4j -t java-lib -f path-of-task-file -u email -p password
Vous pouvez exécuter p4j --help
pour visualiser les paramètres détaillés.
Le résultat du cryptage
Contrairement au chiffrement global des applications Java, le chiffrement de la bibliothèque Java cible des méthodes spécifiques. Une fois le chiffrement terminé, la méthode que vous avez sélectionnée sera convertie en code natif, qui peut être utilisé conjointement avec un JRE standard. Si les utilisateurs doivent le déchiffrer, ils doivent le faire au niveau binaire plutôt qu'au niveau du bytecode, ce qui augmente considérablement la difficulté du déchiffrage.
Avant le cryptage
Après le cryptage
Une fois le chiffrement terminé, la méthode Main est convertie en méthode native.
Limites
- Ne prend pas en charge les blocs de code try-catch.
- Spring ne démarre pas les fichiers jar empaquetés.
- Ne fait pas de guerre aux fichiers
Application de démonstration
Actuellement, la fonction de cryptage de la bibliothèque Java ne prend pas en charge l'essai utilisateur gratuit, vous pouvez télécharger cette application de démonstration pour voir l'effet du cryptage de la bibliothèque Java, il s'agit d'un programme swingapp, vous pouvez l'utiliser java -jar swingapp.jar
pour l'exécuter, sa fonction principale est convertie en méthode native, vous pouvez utiliser l'outil de décompilation pour vérification !
Application non cryptée
Application cryptée