Tiny Online Tools logoTiny Online ToolssearchTools suchen…grid_viewAlle Tools
Startseitechevron_rightReverse-Engineering-Werkzeugechevron_rightJavaScript-DeobfuskierungshelferJavaScript-Deobfuskierungshelfer

JavaScript-Deobfuskierungshelfer

Macht gängige statische JavaScript-Verschleierung rückgängig: String-Array-Lookups, Escapes, konstante Faltung, tote Zweige und eckige Klammern zu Punkten.

infoDies macht nur gängige STATISCHE Verschleierungsmuster rückgängig: String-Arrays, escapte Literale, literale Arithmetik, immer-wahre/falsche Zweige und Klammerzugriff. Es wird kein Code ausgeführt, daher können eval-basierte Lader nicht entpackt, laufzeitabhängige Bedingungen nicht gelöst und Kontrollflussverschachtelung nicht über einen trivialen literalen Test hinaus rückgängig gemacht werden. Variablennamen bleiben unverändert.Verschleiertes JavaScript

Ahnliche Tools

JavaScript-Verschleierer

JavaScript-Verschleierer

Benennt lokale Variablen um, versteckt Zeichenketten und flacht den Kontrollfluss in JavaScript ab – vollständig im Browser, ohne Upload.

JavaScript-Analysator für toten Code

JavaScript-Analysator für toten Code

Bundle einfügen und Top-Level-Funktionen finden, auf die im Datei nirgendwo eine statische Referenz zeigt — eine heuristische Erreichbarkeitsanalyse, keine Gewissheit.

PDF-JavaScript prüfen

PDF-JavaScript prüfen

Findet jedes Skript in einer PDF — Dokumentaktionen, Seiten- und Anmerkungsereignisse, Formularberechnungen — und zeigt es an, ohne es auszuführen.

JS-Bundle-Abhängigkeits-Visualisierer

JS-Bundle-Abhängigkeits-Visualisierer

Findet Modulgrenzen in einem webpack-, Rollup-, esbuild- oder Vite-Bundle und zeigt, welches Modul welches benötigt – per echter AST-Formerkennung, nicht durch Text-Raten.

Fake-Telefonnummern-Generator

Fake-Telefonnummern-Generator

Erzeugen Sie Fake-Telefonnummern in länderspezifischen Formaten mit reservierten oder fiktiven Präfixen, die sicher für Tests sind.

PDF komprimieren

PDF komprimieren

Reduziere die Dateigröße eines PDF-Dokuments ohne es hochzuladen.

Dice Würfler

Dice Würfler

Roll virtual dice für games.

apps

Mehr Tools

Durchsuchen Sie unsere vollstandige Sammlung kostenloser Online-Tools.

Was dieses Tool rückgängig macht

Viele JavaScript-Verschleierer — auch der auf dieser Seite — schreiben Code mit einer kleinen Menge mechanischer, rein statischer Transformationen um: Sie verschieben jedes String-Literal in ein einziges Array und ersetzen jede Verwendung durch einen Aufruf einer Getter-Funktion, escapen normale Zeichen als \xNN- oder \uNNNN-Sequenzen, expandieren einfache Arithmetik zu gleichwertigen, aber längeren Ausdrücken, verpacken echten Code in ein immer-wahres oder immer-falsches if, und schreiben a.b als a['b'] um. Dieses Tool macht genau diese fünf Dinge rückgängig:

  1. String-Array-Inlining — findet var _s = ["foo", "bar"]; function _g(i){ return _s[i]; } und ersetzt jeden Aufruf der Form _g(0), dessen Index eine literale Zahl ist, durch den echten String, und entfernt anschließend Array und Funktion, falls sie sonst nirgends verwendet werden.
  2. Escape-Dekodierung — zeigt \x48\x69 als Hi statt in escaped Form.
  3. Konstantenfaltung — macht aus 1 + 2 eine 3, aus "a" + "b" "ab" und ähnliche literale Arithmetik, wobei alles vermieden wird, was Raten erfordern würde (z. B. Division durch ein literales Null).
  4. Entfernen toter Zweigeif (true) { A } else { B } wird zu einfach A; ein while (false) {} verschwindet vollständig.
  5. Eckige Klammer zu Punktobj['name'] wird zu obj.name, wenn name ein gültiger Bezeichner ist.

Was es nicht macht

Dies ist statisches Musterabgleichen über einem AST, kein allgemeiner Deobfuskierer. Es führt keinerlei Code aus, kann also keinen eval-basierten Lader entpacken, kein undurchsichtiges Prädikat lösen, das von einem Laufzeitwert abhängt, und keine Kontrollflussverschachtelung über den obigen trivialen literalen if/while/Ternär-Fall hinaus rückgängig machen. Variablennamen bleiben unverändert — _0x1a2b bleibt _0x1a2b. Passt Ihre Datei nicht exakt zur Form Array-plus-Getter-Funktion, meldet diese Stufe einfach null inline-ersetzte Aufrufe, statt ein anderes Muster zu erraten.

Wie es funktioniert

Der Code wird mit acorn in einen AST geparst, mit handgeschriebenen Transformationen durchlaufen und umgeschrieben, die nur eingreifen, wenn ein Wert bereits nachweislich literal ist, und mit astring neu erzeugt. Nichts wird an einen Server gesendet: Parsen und Umschreiben geschehen vollständig in Ihrem Browser.

Verwendung

JavaScript in den Editor einfügen oder eintippen und ausführen. Die Zusammenfassung zeigt genau, wie oft jede Stufe ausgelöst wurde, damit Sie sehen, was sich geändert hat und was nicht. Ergebnis kopieren oder als .js-Datei herunterladen.