JavaScript-Deobfuscator
Fügen Sie einen Blob von obfuskiertem JavaScript ein, hex-kodierte Strings, einbuchstabige Variablennamen, eine Dekodierschleife am Anfang, und das Tool schält die Schichten ab: Strings unescape, das Lookup-Array inline, Variablen in lesbare Platzhalter umbenennen, triviale Wrapper glätten und das Ergebnis verschönern. Nützlich zur Analyse verdächtiger Snippets, die Sie von einer Seite oder einem eingefügten Pastebin-Link gezogen haben.
So deobfuskieren Sie JavaScript
-
1
Fügen Sie den obfuskierten Quellcode ein
Minifiziert, gepackt oder von `javascript-obfuscator.io`-Stil-Tools ausgegeben.
-
2
Lassen Sie den Parser es durchlaufen
String-Arrays werden dekodiert, numerische Sequenzen ausgewertet und tote Codezweige entfernt.
-
3
Wenden Sie die Umbenennung an
Einbuchstabige `a`/`b`/`c`-Variablen werden in `var1`, `var2` usw. umbenannt, lesbare Platzhalter, nicht unbedingt bedeutungsvolle Namen.
-
4
Verschönern
Einrücken, neue Zeilen hinzufügen und Code ausgeben, den Sie tatsächlich lesen und verstehen können.
Techniken, die der Deobfuscator umkehrt
| Obfuskation | Umkehrung |
|---|---|
| Hex-escaped String-Literale | Dekodieren \x48\x69 zurück zu "Hi" |
| Unicode-escaped Bezeichner | \u006E\u0061\u006D\u0065 -> name |
| String-Array + Dekodierfunktion | Inline das Array, Dekodierer zur Parse-Zeit aufrufen |
| Numerische Konstantenfaltung | 0x1F3 + 5 -> 504 |
eval(...) Wrapper |
Heben Sie den inneren Code auf die oberste Ebene |
| Kontrollfluss-Glättung (Zustandsmaschine) | Erkennen Sie den Switch-Case, rekonstruieren Sie den Fluss |
| Toter Code / nutzlose Ternären | Entfernen Sie Zweige, die niemals ausgeführt werden |
_0x1a2b3c()-Stilnamen |
Ersetzen durch inkrementierende var1, var2 |
Grenzen: was das Tool nicht tut
- Wiederherstellung ursprünglicher Variablennamen. Sobald
userEmailinaumbenannt wird, kann kein Tool es zurückerraten. Sie erhalten eine lesbare Struktur, nicht die ursprüngliche Semantik. - Entpacken benutzerdefinierter Virtualisierer. Schwergewichtige kommerzielle Obfuskatoren (JScrambler, Unternehmensstufen von Obfuscator.io) führen eine benutzerdefinierte VM ein, die Bytecode interpretiert. Das Überwinden dieser erfordert manuelles Reverse Engineering.
- Ausführen beliebigen Codes. Der Deobfuscator wertet reine Ausdrücke statisch aus. Er wird keine externen Ressourcen abrufen, DOM-Elemente erstellen oder mit dem Netzwerk kommunizieren.
Typische Anwendungsfälle
- Sicherheitsforschung: Zerlegen eines verdächtigen Skripts, das in einer E-Mail angekommen ist oder von einem kompromittierten CDN bereitgestellt wurde.
- Code-Archäologie: Wiederherstellung von Legacy-Code, bei dem das einzige überlebende Artefakt ein minifiziertes Bundle ist.
- Lernen: Verstehen, was eine Obfuskation auf Tutorial-Niveau tatsächlich im Hintergrund tut.
Sicherheit und Ethik
Führen Sie niemals nicht vertrauenswürdiges JavaScript in einem Browser-Tab aus, der in etwas Wichtiges eingeloggt ist, der Code kann Cookies lesen, interne APIs aufrufen und den Zustand exfiltrieren. Der Deobfuscator selbst arbeitet mit dem Quelltext; er führt den Code, den Sie einfügen, nicht aus.
Deobfuskieren Sie nur Code, den Sie autorisiert sind zu analysieren. Reverse Engineering von lizenzierten Software kann in Ihrer Gerichtsbarkeit eingeschränkt sein.
Häufig gestellte Fragen
Nein. Sobald der Obfuskator userEmail in _0x1a2b3c umbenennt, geht der ursprüngliche Name verloren. Der Deobfuscator gibt Ihnen lesbare Platzhalter (var1, var2) und die korrekte Struktur, aber nicht die ursprünglichen semantischen Namen.
Nein. Es analysiert den Code als AST und wendet statische Transformationen an. Reine Ausdrücke (wie 0x1F3 + 5) werden gefaltet, aber nichts berührt das Netzwerk, Cookies oder das DOM.
Ja, aber Bundler-Ausgaben sind minifiziert und nicht absichtlich obfuskiert, sodass das Ergebnis nur verschönerter Code mit wiederhergestellten Modul-Wrappern ist. Quellkarten, wenn separat verfügbar, geben Ihnen viel bessere Namen.
Schwere kommerzielle Tools (Enterprise JScrambler, benutzerdefinierte VMs) führen einen Bytecode-Interpreter ein, den die statische Analyse nicht auflösen kann. Das Tool wird die oberflächliche Schicht erfassen, aber die Kernlogik bleibt ohne manuelles Reverse Engineering undurchsichtig.
Verwandte Tools
ASCII-Tabelle Referenz
Vollständige ASCII-Tabelle von 0 bis 127 mit Dezimal-, Hex-, Oktal-, Binär- und numerischer HTML-Zeichenreferenz für jedes Zeichen, einschließlich Steuerzeichen wie NUL, LF und DEL.
HTML-Zeichenreferenz
Durchsuchbare Liste von HTML-Entitäten, ihren benannten und numerischen Codes sowie eine Ein-Klick-Kopie für Sonderzeichen und Symbole.
Farbrad-Explorer
Erforschen Sie das Farbrad interaktiv. Rotieren Sie Harmonien, vergleichen Sie HSL mit RYB, erkennen Sie komplementäre und triadische Paare in Echtzeit.
Referenz für Tastenkombinationen
Durchsuchen Sie dokumentierte Standardkürzel für VS Code, Chrome und Bash mit GNU Readline unter macOS, Windows und Linux.
Zufallsbuchstaben-Generator
Erzeugen Sie zufällige A-Z-Buchstaben. Wählen Sie Anzahl, Großschreibung, Kleinschreibung oder gemischte Schreibweise für Spiele, Aufgaben und Unterricht.
HTML-Formatter
Formatieren Sie HTML lokal im Browser mit zwei oder vier Leerzeichen Einrückung. HTML wird weder hochgeladen noch validiert.
Tool in anderen Sprachen verfügbar
- Trình giải mã mã JavaScript (JavaScript Deobfuscator) [VI]
- Desofuscador de JavaScript [PT]
- 자바스크립트 디오프스버커 [KO]
- เครื่องถอดรหัส JavaScript [TH]
- أداة إزالة التشفير في لغة جافا سكريبت (JavaScript Deobfuscator) [AR]
- JavaScript-deobfuscator [SV]
- JavaScript-deobfuscator [NL]
- Déobfuscateur JavaScript [FR]
- Deobfuskator JavaScriptu [PL]
- Deobfuscator JavaScript [ID]
- JavaScriptデオブファスカータ [JA]
- Desofuscador de JavaScript [ES]
- JavaScript Deobfuscator [EN]
- Deobfuscator JavaScript [IT]
- JavaScript-деобфускатор [RU]
- JavaScript Deobfuscator [TR]
- JavaScript反混淆工具 [ZH]