Zum Inhalt springen
Aback Tools Logo

Java-Deobfuscator & Decompiler-Helfer

Erkenne und entschlüssele verschleierte Muster in Java-Quellcode. Identifiziert Unicode-Escape-Sequenzen, Hex-String-Kodierungen, verschleierte Zahlenliterale, Base64-kodierte Strings und Zeichenarray-Verkettung. Zeigt jede Erkennung mit kodierten und dekodierten Werten nebeneinander, Vertrauensbewertungen und Quellkontext. Kostenlos, privat und ohne Registrierung.

Java Deobfuscator & Decompiler Helper

Detect and decode obfuscated patterns in Java source code. Identifies Unicode escapes, hex string encodings, obfuscated numeric literals, Base64 encoded strings, and char array concatenation. Shows encoded and decoded values side by side with detection confidence.

Examples:

Paste Java code above and click Analyze Java Code to detect and decode obfuscated patterns. The tool identifies Unicode escapes, hex string encodings, obfuscated numeric literals, Base64 strings, and char array concatenation. Try loading an example to see how it works!

Funktionen

  • 5 Detektoren für Verschleierungsmuster: erkennt automatisch Unicode-Escape-Sequenzen (\\uXXXX), Hex-String-Dekodierung, verschleierte Zahlenliterale (Hex, Oktal, Binär), Base64-kodierte Strings und Zeichenarray-Verkettung. Jede Methode nutzt ihre eigene spezialisierte Erkennungs-Engine mit Regex- und heuristischem Musterabgleich.
  • Kodierte & dekodierte Ansicht nebeneinander: jede erkannte Verschleierung zeigt den ursprünglich kodierten Wert neben dem dekodierten Ergebnis. Kodierte Werte erscheinen in Monospace mit Zeichenlängen-Statistiken, während dekodierte Werte für schnelles Scannen und Vergleichen visuell hervorgehoben werden.
  • Entpacken verschleierter Zahlen: erkennt und dekodiert verschleierte Zahlenliterale, einschließlich Hex (0xFF), Oktal (0377), Binär (0b11111111) und durch Bitoperationen getarnte Ausdrücke. Zeigt den ursprünglichen Zahlenwert neben seiner verschleierten Darstellung mit vollem Kontext.
  • Browserlokale Privatsphäre: die gesamte Java-Deobfuscation-Verarbeitung läuft vollständig in deinem Browser. Dein Java-Quellcode, die erkannten Verschleierungsmuster und die dekodierten Werte verlassen dein Gerät nie. Keine Server-Uploads, keine Datenerfassung, keine API-Aufrufe jeglicher Art.

Was ist Java-Verschleierung?

Java-Verschleierung wandelt Java-Bytecode oder Quellcode um, um Reverse Engineering erheblich zu erschweren, während die Funktionalität erhalten bleibt. Anders als kompiliertes C++ oder Rust behält Java-Bytecode umfangreiche Metadaten bei, darunter Klassennamen, Methodensignaturen, Constant-Pool-Einträge und Zeilennummerntabellen — allesamt für Reverse Engineering nutzbar. Gängige Verschleierungstechniken sind Unicode-Escapes (\u0048 statt "H"), Hex-Strings (Byte-Arrays aus Hex-Literalen), verschleierte Zahlen (Hex, Oktal, Binär, Bitzausdrücke), Base64-Kodierung und Zeichenarray-Verkettung (Strings aus einzelnen Zeichen aufbauen). Diese Techniken zu verstehen ist der erste Schritt, um Java-Code effektiv zu deobfuszieren.

So funktioniert unser Java-Deobfuscator

Der Deobfuscator durchsucht Java-Quellcode mit spezialisierten Musterdetektoren für jede bekannte Verschleierungstechnik. Für Unicode-Escapes extrahiert er \uXXXX-Sequenzen und wandelt sie mit String.fromCodePoint() in die entsprechenden Unicode-Zeichen um. Für Hex-Strings erkennt er Hex-Ziffernpaare und Base64-kodierte Strings in String-Literalen und wandelt sie in lesbaren Text um. Für verschleierte Zahlen identifiziert er Hex- (0x), Oktal- (Präfix 0) und Binärliterale (0b) und wertet sie in ihre Dezimaläquivalente aus. Für Zeichenarrays findet er aufeinanderfolgende Zeichenarray-Initialisierungen und Verkettungsmuster und sammelt die Zeichen, um verborgene Strings zu rekonstruieren. Jede Erkennung enthält den umgebenden Quellkontext und die Zeilennummern.

Java-spezifische Überlegungen zur Deobfuscation

Die Java-Verschleierung hat mehrere Besonderheiten. Unicode-Escapes werden während der Java-Lexerphase verarbeitet — noch bevor der Compiler den Code überhaupt sieht — was bedeutet, dass \u0048 auf Quellcodeebene gleichbedeutend mit 'H' ist. Hex-Strings in Java erscheinen oft als new String(byte[]) oder ähnliche Konstruktionen. Verschleierte Zahlen in Java verwenden das Präfix 0x für Hex, eine führende Null für Oktal und 0b für Binär. ProGuard, der gebräuchlichste Java-Obfuscator, benennt hauptsächlich Klassen, Methoden und Felder um, unterstützt aber auch String-Verschlüsselung über Drittanbieter-Plugins wie Stringer oder DexGuard. Die deobfuszierte Ausgabe hilft dir zu verstehen, wie der Code vor der Verschleierung ausgesehen hätte.

Datenschutz & Sicherheit

Dieses Tool läuft vollständig in deinem Browser. Dein Java-Quellcode, die erkannten Verschleierungsmuster und die dekodierten Werte werden niemals auf einen Server hochgeladen, in einer Datenbank gespeichert oder über ein Netzwerk übertragen. Die gesamte Analyse, der Musterabgleich und die Dekodierung erfolgen lokal auf deinem Gerät mit clientseitigem JavaScript. Es gibt keine API-Aufrufe, kein Analyse-Tracking, keine Cookies und keinerlei Datenerfassung. Das macht es völlig sicher für die Analyse von proprietärem Java-Code, dekompilierten APK-Quellen, Malware-Proben oder vertraulichen Unternehmensanwendungen.

Häufig gestellte Fragen

Das Tool erkennt fünf gängige Java-Verschleierungstechniken: Unicode-Escape-Sequenzen (\uXXXX-Muster, die der Java-Lexer zur Kompilierzeit auflöst), Hex-String-Konstruktionen (Hex-Ziffernpaare, die zu lesbarem Text dekodiert werden), verschleierte Zahlenliterale (Hex 0xFF, Oktal 0377 und Binär 0b11111111, in Dezimal umgewandelt), in String-Literalen Base64-kodierte Strings und Zeichenarray-Verkettungsmuster, bei denen einzelne Zeichen oder kleine Strings zu verborgenem Text kombiniert werden.

ProGuard benennt hauptsächlich Klassen, Methoden und Felder in kurze, bedeutungslose Namen (a, b, c) um, was dieses Tool nicht rückgängig macht. Es kann jedoch die stringbasierten Verschleierungstechniken erkennen und entschlüsseln, die ProGuard-kompatible Plugins wie Stringer, DexGuard oder eigene Obfuscatoren ergänzen. Für ProGuards Namensverschleierung bräuchtest du die mapping.txt-Datei von ProGuard, um die Namen wieder ihren Originalen zuzuordnen.

Java erlaubt Unicode-Escape-Sequenzen (\uXXXX) überall im Quellcode, auch innerhalb von Bezeichnern und Kommentaren. Der Java-Compiler verarbeitet diese Escapes während der lexikalischen Analyse vor dem Parsen, wodurch \u0048 gleichbedeutend mit 'H' ist. Obfuscatoren nutzen dies, um Strings zu verbergen, indem sie sie als Unicode-Escape-Sequenzen kodieren, die Tools ohne Unicode-Dekodierung nicht lesen können. Zum Beispiel wird "Hello" zu "\u0048\u0065\u006C\u006C\u006F".

Java-Obfuscatoren kodieren Strings oft als Hex-Byte-Arrays und konstruieren sie zur Laufzeit mit Methoden wie new String(byte[]), StringBuilder.append((char)0x48) oder String.format(). Das Tool erkennt Hex-Ziffernmuster (0x48, \x48 oder einfache Hex-Paare) innerhalb von String-Literalen und Byte-Konstruktoren und wandelt sie in lesbaren Text um. Dies wird häufig zusammen mit Base64-Kodierung für mehrschichtige Verschleierung verwendet.

Java unterstützt mehrere Integer-Literalformate: Dezimal, Hexadezimal (Präfix 0x), Oktal (führende Null) und Binär (Präfix 0b, Java 7+). Obfuscatoren nutzen dies, um Zahlenwerte zu tarnen. Beispielsweise kann die Portnummer 8080 als 0x1F90, 017620 oder 0b1111110010000 erscheinen. Das Tool erkennt all diese Formate in numerischen Ausdrücken und wertet sie mit vollständigem Quellkontext in ihre Dezimaläquivalente aus.

Nein. Das Tool deckt die gängigsten Kodierungstechniken ab, hat aber Grenzen. Es kann keine eigenen Verschlüsselungsalgorithmen, reflexionsbasierte String-Konstruktion, zur Laufzeit erzeugte Strings, über nativen Code (JNI) erstellte Strings oder über dynamisches Laden von Klassen dekodierte Strings entschlüsseln. Zudem kann eine Verschleierung mit mehreren Kodierungsschichten oder eigenen kryptografischen Transformationen mehrere Durchläufe oder manuelle Analyse erfordern.

Absolut. Der Java-Deobfuscator läuft vollständig in deinem Browser. Dein Java-Quellcode, erkannte Muster und dekodierte Werte werden niemals auf einen Server hochgeladen. Die gesamte Verarbeitung erfolgt lokal auf deinem Gerät ohne API-Aufrufe, ohne Analyse und ohne Datenerfassung. Das ist völlig sicher für die Analyse von proprietärem Code, Malware-Proben oder sensiblen Anwendungen.

Ja — 100 % kostenlos, ohne Registrierung, ohne Konto und ohne Nutzungslimits. Analysiere so viel Java-Code, wie du brauchst, so oft du willst. Es gibt keine Premium-Tarife, versteckten Kosten oder Ratenbegrenzungen. Das Tool läuft vollständig in deinem Browser — dein Code verlässt dein Gerät nie.