Zum Inhalt springen
Aback Tools Logo

JavaScript-Kontrollfluss-Deobfuscator

Reverse Control-Flow-Flattening in JavaScript-Code online kostenlos. Unser Kontrollfluss-Deobfuscator erkennt While(True)-Dispatcher-Muster, ordnet Zustandsübergänge zu, identifiziert Zustandsvariablen und generiert Zustands-zu-Block-Zuordnungen, um die Rekonstruktion der ursprünglichen Verzweigungslogik zu unterstützen. Enthält ein automatisches Zustandsübergangsdiagramm, eine Fallanalyse und detaillierte Statistiken. Kostenlose, private browserbasierte Verarbeitung, keine Anmeldung erforderlich.

JavaScript Control Flow Deobfuscator

Detect and reverse control-flow flattening in JavaScript code. Identifies while(true) dispatcher patterns, traces state assignments, maps state transitions, and reconstructs the original branching logic. Includes state-to-block mapping and transition diagram.

Paste JavaScript code with control-flow flattening above and click Analyze Control Flow to detect state transitions and reconstruct branching logic. Click Load example flattened code to try it with a sample.

Warum sollten Sie unseren JavaScript-Kontrollfluss-Deobfuscator verwenden?

  • Sofortige Kontrollflusserkennung und -analyse: Analysieren Sie JavaScript-Code zur sofortigen Reduzierung des Kontrollflusses mit unserem Deobfuscator. Das Tool erkennt automatisch While(True)-Dispatcher-Muster, For-Loop-Dispatcher und andere Techniken zur Reduzierung des Kontrollflusses. Identifiziert die Zustandsvariable, Fallblöcke und Zustandsübergänge in Echtzeit – kein Warten, keine Serveraufrufe.
  • Sichere und private Codeverarbeitung: Die gesamte Entschleierung des Kontrollflusses erfolgt vollständig in Ihrem Browser. Ihr verschleierter Code, Ihre Analyseergebnisse und Zustandszuordnungsdaten verlassen niemals Ihr Gerät. Kein Hochladen von Daten, keine Nachverfolgung, keine Anmeldung erforderlich – vollständige Privatsphäre für alle Ihre Code-Analysearbeiten.
  • Kontrollfluss-Deobfuscator online – keine Installation: Verwenden Sie den JavaScript-Kontrollfluss-Deobfuscator direkt in jedem modernen Browser, ohne dass Downloads, Apps oder Plugins erforderlich sind. Verfügt über einen Editor mit zwei Bedienfeldern, automatische Zustandsübergangserkennung, Zustands-zu-Block-Zuordnungstabelle und Übergangsdiagrammgenerierung.
  • Zustandszuordnung und Übergangsanalyse: Unser Kontrollfluss-Deobfuscator bietet eine vollständige Zustands-zu-Block-Zuordnung, die jeden Zustandswert, die zugehörige Codeblock-Zusammenfassung und alle Übergänge zu anderen Zuständen zeigt. Sehen Sie sich das vollständige Zustandsübergangsdiagramm an und verstehen Sie, wie der abgeflachte Kontrollfluss ursprünglich verzweigt war.

Häufige Anwendungsfälle für den Kontrollfluss-Deobfuscator

  • Reverse Engineering verschleierter JavaScript-Bibliotheken: Sicherheitsanalysten und Entwickler verwenden den Kontrollfluss-Deobfuscator, um JavaScript-Bibliotheken zurückzuentwickeln, die durch Kontrollfluss-Flattening geschützt sind. Durch die Identifizierung des Dispatcher-Musters und die Zuordnung von Zustandsübergängen können sie die ursprüngliche Verzweigungslogik rekonstruieren, die sich hinter der abgeflachten while(true)-Switch-Struktur verbirgt.
  • Malware- und Phishing-Skript-Analyse: Cybersicherheitsexperten analysieren bösartige JavaScript-Beispiele, die eine Abflachung des Kontrollflusses nutzen, um einer Erkennung zu entgehen. Der Deobfuscator deckt die verborgene Verzweigungslogik auf und ermöglicht so die Identifizierung bösartiger Payload-Übermittlungspfade, Umleitungsketten und Datenexfiltrationscodes, die unter mehreren Zustandsübergängen verborgen sind.
  • Verstehen des Verhaltens von Skripten von Drittanbietern: Entwickler nutzen den Kontrollfluss-Deobfuscator, um zu verstehen, was verschleierte Skripte von Drittanbietern tatsächlich tun, bevor sie sie integrieren. Die Zustandszuordnung deckt Entscheidungspunkte, API-Aufrufzweige und Datenerfassungslogik auf, die andernfalls unter einem abgeflachten Kontrollfluss verborgen bleiben würden.
  • Debuggen von verschleiertem Produktionscode: Frontend-Entwickler, die minimiertes und verschleiertes Produktions-JavaScript debuggen, verwenden den Kontrollfluss-Deobfuscator, um Ausführungspfade zu verfolgen. Das Zustandsübergangsdiagramm hilft ihnen, den Programmablauf zu verstehen, wenn Debugging-Tools bei abgeflachten Kontrollflussstrukturen scheitern.
  • Code-Audit und Schwachstellenforschung: Sicherheitsprüfer verwenden den Kontrollfluss-Deobfuscator bei Code-Audits, um Abhängigkeiten von Drittanbietern zu analysieren, die die Reduzierung des Kontrollflusses nutzen. Mithilfe der Status-zu-Block-Zuordnung lässt sich ermitteln, welche Ausführungspfade zu sensiblen Vorgängen oder Datenzugriffspunkten führen.
  • Erlernen von Kontrollfluss-Verschleierungstechniken: Studenten und Entwickler, die etwas über fortgeschrittene JavaScript-Verschleierung lernen, verwenden den Kontrollfluss-Deobfuscator, um zu verstehen, wie die Kontrollfluss-Verflachung regulären Verzweigungscode in Dispatcher-basierte Muster umwandelt. Die Side-by-Side-Analyse zeigt die verschleierte Eingabe neben der Zustandszuordnung.

Was ist Kontrollfluss-Deobfuscation?

Bei der Kontrollfluss-Entschleierung handelt es sich um den Prozess der Umkehrung der Kontrollfluss-Abflachung, einer fortschrittlichen Verschleierungstechnik, die die natürliche Verzweigungsstruktur eines Programms (if/else-Anweisungen, Schleifen, bedingte Rückgaben) in einen Zustandsautomaten-Dispatcher umwandelt. Anstelle einer lesbaren bedingten Logik verwendet der Code eine Statusvariable und eine Dispatcher-Schleife (normalerweise while(true) umschließt eine Switch-Anweisung), um den Ausführungsfluss zu steuern. Jeder Codeblock wird zu einem Fall im Schalter, und Übergänge zwischen Blöcken werden durch Ändern der Statusvariablen gesteuert. Unser Kontrollfluss-Deobfuscator erkennt diese Muster, bildet die Zustandsübergänge ab und hilft bei der Rekonstruktion der ursprünglichen Verzweigungslogik – wodurch der Code viel einfacher zu verstehen und zu analysieren ist.

So funktioniert unser Kontrollfluss-Deobfuscator

  1. 1. Reduzierten JavaScript-Code einfügen: Fügen Sie verschleierten JavaScript-Code, der die Reduzierung des Kontrollflusses verwendet, in das Eingabefeld ein. Das Tool sucht nach Dispatcher-Mustern, einschließlich while(true), und nach Schleifen, die Switch-Anweisungen mit einer Statusvariablen enthalten. Klicken Sie auf „Beispiel für reduzierten Code laden“, um es mit einem realistischen Beispiel zu testen, das alle gängigen Reduzierungsmuster demonstriert.
  2. 2. Klicken Sie auf Kontrollfluss analysieren: Der Deobfuscator identifiziert das Dispatcher-Muster, extrahiert den Statusvariablennamen, findet alle Fallbezeichnungen und ordnet Statuszuweisungen zu. Es generiert eine vollständige Zustands-zu-Block-Zuordnung, die jeden Zustandswert, den von ihm gesteuerten Codeblock und alle Übergänge in andere Zustände zeigt. Es wird automatisch ein Übergangsdiagramm generiert, das den Fluss zwischen den Zuständen zeigt.
  3. 3. Zustandsübergangsanalyse überprüfen: Das Analysefeld zeigt das Übergangsdiagramm und Statistiken einschließlich Dispatcher-Typ, Zustandsanzahl und Anzahl der Zustandszuweisungen. Die interaktive Zustandszuordnungstabelle bietet detaillierte Informationen zu jedem Zustand: seinen Wert, die Codeblock-Zusammenfassung und alle Zielzustände – und hilft Ihnen, die rekonstruierte Verzweigungslogik zu verstehen.

Welche Kontrollflussmuster werden erkannt?

  • While-True-Dispatcher: Das häufigste Muster verwendet {'while(true) { switch(state) }'} . Die Schleife endet nie auf natürliche Weise; Stattdessen steuern Zustandsübergänge, welcher Fall als nächstes ausgeführt wird. Dies ist das Muster, das von beliebten Obfuscatoren wie JavaScript Obfuscator und Jscrambler verwendet wird.
  • For-Loop-Dispatcher: Einige Verschleierer verwenden eine for-Schleife als Dispatcher anstelle von while(true) , manchmal mit einem Schleifenzähler, der gleichzeitig als Statusvariable fungiert. Der Deobfuscator erkennt auch diese alternativen Dispatcher-Muster.
  • Variationen des Schleifen-Wrappers: Andere Schleifentypen wie do...while und verschachtelte Schleifenstrukturen, die Switch-Anweisungen umschließen, werden ebenfalls erkannt. Das Tool identifiziert die Zustandsvariable und ordnet alle Fallblöcke unabhängig von der äußeren Schleifenstruktur zu.
  • Zustandszuweisungen und -übergänge: Die Übergänge jedes Zustandsblocks werden verfolgt, indem alle Zuweisungen zur Zustandsvariablen in jedem Fallblock gefunden werden. Das Übergangsdiagramm zeigt den vollständigen Flussgraphen vom Eintritts- bis zum Endzustand.

Datenschutz, Sicherheit und Einschränkungen

Der Kontrollfluss-Deobfuscator ist 100 % kostenlos und erfordert keine Anmeldung. Die gesamte Codeanalyse wird mithilfe von Mustervergleichen lokal in Ihrem Browser durchgeführt – Ihr verschleierter Code und Ihre Analyseergebnisse verlassen niemals Ihr Gerät. Es gibt keine Dateigrößenbeschränkungen oder Nutzungsbeschränkungen. Beachten Sie, dass dieses Tool eine musterbasierte Erkennung und keine vollständige semantische Rekonstruktion durchführt. Eine komplexe Verschleierung mit mehreren Ebenen oder zur Laufzeit generierten Zustandswerten erfordert möglicherweise zusätzliche Analysedurchgänge. Für eine vollständige Entschleierung kombinieren Sie es mit anderen Tools wie dem JavaScript Deobfuscator/Unpacker für die Dekodierung von Hex-Strings und dem Variable Name Deobfuscator für die Wiederherstellung von Bezeichnern. Bewahren Sie Ihren ursprünglichen, lesbaren Quellcode immer in der Versionskontrolle auf.

Häufig gestellte Fragen

Ein JavaScript-Kontrollfluss-Deobfuscator kehrt die Kontrollflussverflachung um, eine fortschrittliche Verschleierungstechnik, die normale Verzweigungslogik in eine Zustandsmaschine mit einem while(true)-Switch-Dispatcher umwandelt. Es erkennt das Dispatcher-Muster, bildet Zustandsübergänge ab und rekonstruiert die ursprüngliche Verzweigungslogik.

Durch die Reduzierung des Kontrollflusses wird der Code in eine flache Zustandsmaschine umstrukturiert. Anstelle lesbarer if/else-Bedingungen verwendet der Code eine Statusvariable und einen while(true)-Switch-Dispatcher, bei dem jeder ursprüngliche Codeblock zu einem Fall wird und die Ausführung durch Ändern der Statusvariablen zwischen Blöcken fließt.

Das Tool erkennt while(true)-Switch-Dispatcher, For-Loop-Dispatcher und andere Schleifenvarianten. Es identifiziert die Zustandsvariable, extrahiert Fallbezeichnungen, ordnet Zustandszuweisungen zu und generiert ein vollständiges Zustandsübergangsdiagramm.

Es bietet musterbasierte Erkennung und Zustandszuordnung, um die Rekonstruktion der Verzweigungslogik zu unterstützen. Eine vollständige semantische Rekonstruktion erfordert ein Verständnis der Codesemantik, das über den Mustervergleich hinausgeht. Für vollständige Ergebnisse können Sie es zusammen mit anderen Entschleierungstools verwenden.

Absolut. Die gesamte Verarbeitung erfolgt lokal in Ihrem Browser – Ihr Code verlässt Ihr Gerät nie. Keine Uploads, kein Tracking, keine Anmeldung erforderlich.

Beliebte Verschleierer, darunter JavaScript Obfuscator, Jscrambler und benutzerdefinierte Frameworks, nutzen die Reduzierung des Kontrollflusses, oft kombiniert mit String-Kodierung, Variablenumbenennung und Dead-Code-Injection.

Ja – 100 % kostenlos, ohne Anmeldung, ohne Konto, ohne Nutzungsbeschränkungen. Analysieren Sie jeden JavaScript-Code beliebig oft und für immer.