Java-Bibliothek schützen

Java-Bibliothek mit GUI-Tool schützen

Wechseln Sie zum Protector4J-Ordner, führen Sie p4j-ui[.exe] aus, und Sie sehen die folgende Benutzeroberfläche.

image-20241222183944773

Für macOS-Benutzer können Sie einfach auf Protector4J.app doppelklicken wie bei einer normalen Mac-Anwendung.

Anmeldung

Wenn Sie bereits die Lizenz erworben haben, klicken Sie bitte auf die Anmelde-Schaltfläche in der oberen rechten Ecke und geben Sie Ihre Benutzerdaten ein. Wenn Sie keine Lizenz haben, können Sie dieses Tool trotzdem ausprobieren.

Die Java-Bibliotheksschutz-Funktion erfordert die Enterprise Edition.

Anwendungstyp auswählen

Klicken Sie auf die Schaltfläche "Java Library" auf der Anwendungstyp-Seite

JAR/WAR-Datei auswählen, die verschlüsselt werden soll

Wählen Sie die JAR/WAR-Dateien aus, die Sie verschlüsseln möchten. Sie können eine oder mehrere Dateien auswählen

Verschlüsselungsmethode angeben

Auf dieser Seite können Sie die Verschlüsselungsmethode auswählen

image-20241222111100288

Sie können die zu schützenden Klassen und Methoden aus dem Strukturverzeichnis auf der rechten Seite auswählen, oder Sie können die zu schützenden Elemente manuell im folgenden Format eingeben.

# Eine Methode schützen
# Klassenname.Methodenname&Methodensignatur
Hello.hello&()V
# Alle Methoden einer Klasse schützen
# Direkt den Klassennamen eingeben
Hello

Sie können die auszuschließenden Inhalte in den auszuschließenden Elementen im gleichen Format eingeben.

Java-Bibliothek mit CLI-Tool schützen

Konfigurationsdatei

Das CLI-Tool muss eine Aufgabendatei als Parameter angeben.

Wechseln Sie zum Ordner protector4j/task-templates, suchen Sie java-lib-task.yml, kopieren und bearbeiten Sie eine.

# 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

Verschlüsselungsaufgabe ausführen

Wechseln Sie zum Protector4J-Ordner und führen Sie den folgenden Befehl aus.

Linux oder macOS

Für macOS-Benutzer finden Sie das CLI-Tool unter /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

Sie können p4j --help ausführen, um die detaillierten Parameter anzuzeigen.

Das Ergebnis der Verschlüsselung

Im Gegensatz zur Gesamtverschlüsselung von Java-Anwendungen zielt die Java-Bibliotheksverschlüsselung auf bestimmte Methoden ab. Nach Abschluss der Verschlüsselung wird die von Ihnen ausgewählte Methode in nativen Code umgewandelt, der in Verbindung mit einer Standard-JRE verwendet werden kann. Wenn Benutzer es knacken möchten, müssen sie dies auf binärer Ebene statt auf Bytecode-Ebene tun, was die Schwierigkeit des Knackens erheblich erhöht.

Vor der Verschlüsselung

image-20250204115631030

Nach der Verschlüsselung

image-20250204115731661

Nach Abschluss der Verschlüsselung wird die Main-Methode in eine native Methode umgewandelt.

Einschränkungen

  1. Unterstützt keine Try-Catch-Codeblöcke.
  2. Unterstützt keine von Spring Boot gepackten JAR-Dateien.
  3. Unterstützt keine WAR-Dateien

Demo-Anwendung

Derzeit unterstützt die Java-Bibliotheksverschlüsselungsfunktion keine kostenlose Benutzer-Testversion. Sie können diese Demo-Anwendung herunterladen, um den Effekt der Java-Bibliotheksverschlüsselung zu sehen. Dies ist ein Swing-Programm, das Sie mit java -jar swingapp.jar ausführen können. Dessen Hauptfunktion wird in eine native Methode umgewandelt. Sie können ein Dekompilierungstool zur Überprüfung verwenden!

Unverschlüsselte Anwendung

swing-plain.jar

Verschlüsselte Anwendung

swing-encrypted.jar