Änderungsprotokoll

6.0.9 2026-07-25

Absturzbehebung für verschlüsselte Anwendungen, die NullPointerExceptions ausgeben

  • Ein JVM-Absturz wurde behoben, der auftreten konnte, wenn eine geschützte Methode eine implizite NullPointerException auslöste und die Anwendung deren Meldung las oder den Stacktrace ausgab. Die Funktion für "hilfreiche NPE-Details" der Laufzeit versuchte, den Text "because ... is null" aus dem verschlüsselten Bytecode der Methode zu rekonstruieren, griff dabei auf ungültigen Speicher zu und brachte die VM zum Absturz (beobachtet bei JavaFX-FXML-Anwendungen). Geschützte Methoden überspringen die Detailmeldung nun und fallen auf eine normale NullPointerException zurück; Ausnahmetyp, Stacktrace und eine von der Anwendung bereitgestellte Meldung bleiben unberührt.
  • Die Laufzeiten für JDK 17, 21 und 25 wurden mit dieser Korrektur auf VLX 1.0.16 neu erstellt. JDK 11 ist nicht betroffen, da die Funktion für hilfreiche NPE-Details vor JDK 14 nicht existiert, und bleibt auf VLX 1.0.15; JDK 8 bleibt auf VLX 1.0.11.

6.0.8 2026-07-24

Bedarfsgeladene Tomcat-Laufzeiten und produktionssichere Standardwerte

  • Ein Fehler wurde behoben, durch den der veröffentlichte selbstgeschützte Encoder keine Tomcat-WARs paketieren konnte, weil die Tomcat-Klassen in app.p4jx nicht mehr als physisches Klassenpfad-JAR sichtbar waren. Tomcat 9.0.107 und 10.1.53 werden nun als unveränderliche, versionierte R2/COS-Artefakte anhand des Servlet-Namensraums ausgewählt, bei der ersten Verwendung heruntergeladen, lokal zwischengespeichert und anhand eines exakten SHA-256-Werts sowie des JAR-Manifests geprüft. Manipulierte Cache-Dateien werden verworfen und erneut heruntergeladen.
  • Öffentliche WEB-INF/lib-JARs werden jetzt pro Anwendung getrennt als hashgebundene physische Webressourcen bereitgestellt. Dadurch entfällt beim Spring-Start das wiederholte Lesen und Prüfen verschachtelter Archive für jede Klasse.
  • Neue Builds verwenden nun standardmäßig den Produktionsendpunkt https://protector4j.com für Lizenzen. Der interne Endpunkt http://10.10.10.16:16002 wird nur verwendet, wenn P4JX_LICENSE_MODE=dev oder -PlicenseMode=dev ausdrücklich ausgewählt wurde.

6.0.7 2026-07-24

Verschachtelte Tomcat-Abhängigkeiten und vertrauenswürdige dynamische Klassen

  • Fehler beim Laden von Klassen oder Diensten aus WEB-INF/lib/*.jar durch geschützte Tomcat-WARs wurden behoben. Protector4J versiegelt nun exakte SHA-256-Metadaten der verschachtelten JARs und Klassen in app.p4jx; unbekannte, ausgetauschte oder manipulierte Abhängigkeiten werden weiterhin abgelehnt.
  • Fehler von Spring CGLIB und Hibernate Byte Buddy unter JDK 11 wurden behoben, die durch den JDK-11-spezifischen Quellmarker von MethodHandles.Lookup#defineClass entstanden. Dynamisches Vertrauen erfordert weiterhin eine von der VM geprüfte Herkunft der aufrufenden Klasse oder des Loaders; Marker-Zeichenketten, Klassennamen, Pfade, Paketnamen und CodeSource gewähren kein Vertrauen.
  • VLX-1.0.15-Laufzeiten für JDK 11, 17, 21 und 25 wurden für 24 unterstützte Plattformkombinationen veröffentlicht. Alle haben die strengen L1-L5-Prüfungen bestanden, einschließlich echtem FXML, Swing/AWT, dem Laden verschachtelter Tomcat-Abhängigkeiten sowie negativen Herkunfts- und Manipulationsfällen. JDK 8 bleibt bei VLX 1.0.11.

6.0.6 2026-07-22

Vertrauenswürdige Herkunft für Klassendefinitionen

  • Startfehler geschützter JavaFX-FXML-Anwendungen wurden behoben: MethodUtil definiert den von der VM geprüften Trampoline-Helfer über defineClass(byte[]). Vertrauen wird nun nur aus von der VM geprüfter Klassen- oder Loader-Herkunft weitergegeben, nicht aus Klassennamen, Pfaden, Paketnamen oder CodeSource-Zeichenketten.
  • Es wurde echte FXML-Abdeckung mit fx:controller, Property-Elementen, Controller-Injektion und WebView-Start ergänzt, außerdem Regressionen für vertrauenswürdige dynamische Definitionen, zweistufige Weitergabe, unbekannte Quellen, nicht autorisierte JARs und den Austausch von protected class-Namen.
  • VLX 1.0.14-Laufzeiten für JDK 11, 17, 21 und 25 wurden veröffentlicht. JDK 8 bleibt bei VLX 1.0.11.

6.0.5 2026-07-21

Integrität der nativen JavaFX-Laufzeit

  • Startfehler von JavaFX WebView unter Windows (Graphics Device initialization failed / No toolkit found) wurden behoben, indem die paketierten JavaFX-DLLs in vlxjre/bin abgelegt und die Suche des Launchers nach nativen Bibliotheken angepasst wurde.
  • Die verschlüsselte Allowlist in app.p4jx wurde auf externe native Bibliotheken erweitert. Native JavaFX-Dateien müssen unabhängig vom Pfad exakt den SHA-256-Werten entsprechen, und Glass überprüft die tatsächlich geladene Datei erneut; unbekannte oder manipulierte Dateien werden abgelehnt.
  • Aktualisierte Protector4J-Laufzeiten für JDK 11, 17, 21 und 25 wurden veröffentlicht. Die unterstützten JavaFX-Plattformkombinationen haben L5.1-L5.4 bestanden; geprüft wurden der WebView-Start sowie die Ablehnung manipulierter Modul-JARs, jdk.jsobject und nativer Glass-Bibliotheken.

6.0.4 2026-07-21

Integrität externer Module und JavaFX-Laufzeitkompatibilität

  • Das pfadbasierte Vertrauen für externe Module wurde entfernt. Jedes externe Modul-JAR muss jetzt exakt mit einem in app.p4jx eingebetteten SHA-256-Allowlist-Eintrag übereinstimmen; unbekannte oder manipulierte Dateien werden unabhängig von ihrem Speicherort abgelehnt.
  • Die automatische Erkennung der Abhängigkeitsauflösung aus JavaFX module-info.class sowie die kontrollierte Zulassung festgelegter JavaFX- und JDK-Module wurden hinzugefügt, einschließlich javafx.media und jdk.jsobject.
  • JavaFX-WebView-Startfehler sowie E818- / ClassFormatError-Fehler nach dem Aufbau der Boot-Layer wurden mit den neu veröffentlichten P4JX-Laufzeitumgebungen für alle unterstützten JDK-Versionen und Plattformen behoben.

6.0.3 2026-07-20

Kompatibilität des JavaFX-WebView-Moduls

  • Die Auflösung des optionalen Moduls jdk.jsobject wurde für unterstützte P4JX-Laufzeiten korrigiert, die aus derselben JDK/VLX-Version neu erstellt wurden. Eine kompatible Laufzeit wird nicht mehr allein deshalb abgelehnt, weil das vollständige lib/modules-Abbild andere Bytes enthält.
  • Die Auswahl nach JDK-Reihe und Plattform, die exakte Prüfung von Modul-SHA-256 und Modulname sowie die erneute Prüfung des Abhängigkeitsabschlusses nach der Installation bleiben erhalten.

6.0.2 2026-07-20

JavaFX-WebView-Kompatibilität

  • Startfehler von JavaFX WebView wurden behoben, indem javafx.media zusammen mit javafx.web paketiert und bei Bedarf das exakt zum P4JX-Laufzeitabbild passende Modul jdk.jsobject automatisch aufgelöst wird.
  • Optionale Module können nun SHA-256-fixiert und an Version, Plattform und Laufzeit gebunden vom regionalen öffentlichen Download-Dienst geladen werden. Laufzeiten, die das Modul bereits enthalten, überspringen den Download.

6.0.1 2026-07-20

JavaFX-Kompatibilität

  • Startfehler bei Fat JARs mit eingebetteten JavaFX-Laufzeitklassen wurden behoben. Die automatische Kompatibilitätsanwendung lässt nun die Namensräume der eingebetteten JavaFX-API, Implementierung und JNI-Brücke unverschlüsselt und vermeidet so eine doppelte Klassenzuordnung mit den paketierten JavaFX-Modulen.
  • Die Kompatibilitätsdiagnose und die mehrsprachigen Hinweise für Anwendungen mit eingebetteten JavaFX-Laufzeiten wurden verbessert.

6.0.0 2026-07-20

Protector4J 6.0 ist ein Hauptrelease mit vollständig neu gestalteter Schutzarchitektur und kein gewöhnliches inkrementelles Update der 5.x-Reihe.

Architektur und Schutz

  • Die grundlegende Architektur von Protector4J wurde neu gestaltet und die neue P4JX-Schutz-Engine eingeführt.
  • Nahezu 100 Schutzmaßnahmen wurden über Archiverstellung, Klassenladen, Laufzeitausführung, Anti-Debugging und Artefaktintegrität hinweg ergänzt.
  • Die Hürde für Reverse Engineering wurde erheblich erhöht. Die neue Architektur soll kurzfristiges Knacken selbst mit fortschrittlichen KI-gestützten Analysewerkzeugen äußerst schwierig machen.
  • Lizenzanfragen, Runtime-Downloads, Artefaktprüfung und die Sicherheit plattformübergreifender Installationspakete wurden verstärkt.

Produkterlebnis

  • JDK 8, 11, 17, 21 und 25 werden unterstützt, mit grafischen Paketierungsabläufen für Java-, JavaFX-, Spring Boot- und Tomcat-Anwendungen.
  • Kompatibilitätsprüfung, selektive Klassenverschlüsselung, Schutz abhängiger JAR-Dateien, Import und Export von YAML-Aufgaben sowie Stapel-Builds für mehrere Zielplattformen wurden hinzugefügt.
  • Die Desktop-Oberfläche wurde neu gestaltet und unterstützt 11 Sprachen sowie dauerhaft gespeicherte Spracheinstellungen.

Hinweise zur Migration

Protector4J 6.0 unterscheidet sich in der Verwendung deutlich von früheren Versionen. Lesen Sie vor der Verwendung bitte die aktuelle Dokumentation erneut und erstellen und migrieren Sie Ihre verschlüsselten Anwendungen möglichst bald mit 6.0 neu, um vom stärkeren Schutz zu profitieren.

Protector4J 6.0 herunterladen

Frühere Versionen

Änderungsprotokoll

5.7.0 2026-03-07

  • Unterstützung für JDK25 hinzugefügt

5.6.2 2026-01-03

  • JRE-Download-Problem behoben
  • Pidkiller-Problem behoben

5.6.1 2025-08-13

  • Laufzeitproblem behoben

5.6.0 2025-08-09

  • GraphQL-Ressourcenproblem behoben

5.5.1 2025-06-01

  • Problem beim Herunterladen von Ressourcen behoben

5.5.0 2025-04-19

  • Probleme mit dem Decoder behoben

5.4.1 2025-04-17

  • Pidchecker mit neuester Go-Version erstellt

5.4.0 2025-04-08

  • JDK17 auf 17.0.14 aktualisiert

5.3.5 2025-03-26

  • Den ausführbaren Wrapper aktualisiert

5.3.4 2025-03-08

  • Problem behoben, dass die Anwendung auf einigen Windows-Systemen nicht ausgeführt werden konnte

5.3.3 2025-02-20

  • Problem behoben, dass die Anwendung unter einigen Windows-Systemen nicht lief

5.3.2 2025-02-04

  • Problem mit fehlerhaftem META-INF bei der JAVA-Bibliotheksverschlüsselung behoben

5.3.1 2025-01-28

  • Problem behoben, dass die Anwendung auf CPUs älterer Versionen nicht ausgeführt werden konnte

5.3.0 2025-01-25

  • jdk.naming.dns-Modul hinzugefügt

5.2.0 2025-01-19

  • Neuer Decoder

5.1.0 2025-01-12

  • Falsch-Positiv-Problem des Decoders unter Windows behoben

5.0.0 2024-12-28

  • Unterstützung für die separate Verschlüsselung von Java-Bibliotheken hinzugefügt (Vorschau), sodass die Anwendung mit normaler JRE ausgeführt werden kann

4.8.1 2024-12-08

  • Problem behoben, dass Dateitypen bei der Verarbeitung von Tomcat-Aufgaben nicht geprüft wurden

4.8.0 2024-11-30

  • Problem behoben, dass die Anwendung unter Windows 7 nicht ausgeführt werden konnte
  • Problem behoben, dass das jdk.net-Modul nicht importiert wurde

4.7.1 2024-09-19

  • Problem behoben, dass die generierte Linux-App nicht ordnungsgemäß ausgeführt wird

4.7.0 2024-09-08

  • Problem behoben, dass das generierte Programm unter macOS nicht ausgeführt werden konnte
  • Problem mit Falsch-Positiv-Meldungen von Sicherheitssoftware behoben

4.6.2 2024-07-21

  • Option zum Entfernen der application.properties-Datei aus Bibliotheken für SpringBoot-Anwendungen hinzugefügt
  • Scrollleiste hinzugefügt, um das Problem zu lösen, dass die Elemente im Fenster nicht vollständig angezeigt werden, wenn das Fenster zu klein ist

4.6.1 2024-05-25

  • Problem behoben, dass vlxjre8 auf dem Mac wiederholt heruntergeladen wurde
  • Problem mit fehlenden JVM-Optionen beim Laden von TaskInfo behoben

4.6.0 2024-04-30

  • JDK aktualisiert, um das Problem mit dem fehlenden Login-Modul zu lösen
  • add-permission-script.sh aktualisiert

4.5.3 2024-03-16

  • Tomcat 10.1.19 hinzugefügt

4.5.2 2024-03-02

  • Wrapper-Problem unter Windows behoben

4.5.1 2024-03-01

  • Signaturproblem bei Java 21 behoben

4.5.0 2024-02-25

  • Problem behoben, dass Virtual Threads nicht funktionieren konnten

4.4.0 2024-02-24

  • Problem mit dem Decoder behoben

4.3.0 2024-02-06

  • Tomcat auf 9.0.85 aktualisiert

4.2.2 2024-01-31

  • Unnötige wrapper.json-Datei entfernt

4.2.1 2024-01-25

  • Problem mit dem Berechtigungsskript behoben

4.2.0 2024-01-23

  • Problem behoben, dass Broken Pipe zum Beenden der App führte
  • Problem behoben, dass die automatische Bereinigung des /tmp-Ordners zum Beenden der App führte
  • Problem behoben, dass Java 8 libfreetype unter macOS nicht finden konnte
  • Problem behoben, dass Konflikte bei mehreren vorhandenen application.properties-Dateien auftraten

4.1.0 2023-10-30

  • Problem mit JDK8 behoben
  • Broken-Pipe-Problem unter Linux und macOS behoben
  • Chinesische Benutzer können nun den Server als https://protector4j.cn auswählen

4.0.1 2023-10-24

  • Decoder aktualisiert

4.0.0 2023-10-17

  • Unterstützung für Java 21 hinzugefügt
  • Sicherheitsverbesserungen für stärkeren Schutz

3.3.0 2023-09-29

  • Problem behoben, dass Tomcat-Projekte nicht ordnungsgemäß starten konnten
  • Warnung bei doppelten Klassen in einem Projekt

3.2.0 2023-08-24

  • Problem mit Windows-Kodierung in mehrsprachigen Umgebungen behoben

3.1.1 2023-08-02

  • Zeichenfehler in nicht-englischen Pfaden behoben

3.1.0 2023-07-22

  • ZipInputStream-bezogene Probleme behoben
  • ZipFileSystem-bezogene Probleme behoben
  • Weitere Probleme behoben

3.0.2 2023-05-29

  • Dekodierungsprobleme unter Windows behoben

3.0.1 2023-05-25

  • Startprobleme mit der mac-aarch64-Version behoben

3.0.0 2023-05-20

  • Neues Anwendungs-Startsystem
  • Neues Dekodierungssystem
  • Java 8 kann Programme jetzt mit dem -jar-Befehl ausführen

2.12.5 2023-05-12

  • Problem behoben, dass JDK8 freetype unter macOS nicht finden konnte

2.12.4 2023-02-28

  • Backend aktualisiert