Désobfuscateur de flux de contrôle JavaScript
Aplatissement du flux de contrôle inversé dans le code JavaScript en ligne gratuitement. Notre désobfuscateur de flux de contrôle détecte les modèles de répartiteur while (vrai), mappe les transitions d'état, identifie les variables d'état et génère des mappages état-bloc pour aider à reconstruire la logique de branchement d'origine. Comprend un diagramme de transition d'état automatique, une analyse de cas et des statistiques détaillées. Traitement gratuit et privé basé sur un navigateur, aucune inscription requise.
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.
Pourquoi utiliser notre désobfuscateur de flux de contrôle JavaScript ?
- Détection et analyse instantanées du flux de contrôle : analysez le code JavaScript pour aplatir instantanément le flux de contrôle avec notre désobfuscateur. L'outil détecte automatiquement les modèles de répartiteur while (vrai), les répartiteurs de boucle for et d'autres techniques d'aplatissement du flux de contrôle. Identifie la variable d'état, les blocs de cas et les transitions d'état en temps réel - pas d'attente, pas d'appels au serveur.
- Traitement du code sécurisé et privé : toute désobfuscation du flux de contrôle se produit entièrement dans votre navigateur. Votre code obscurci, vos résultats d'analyse et vos données de mappage d'état ne quittent jamais votre appareil. Aucune donnée téléchargée, aucun suivi, aucune inscription requise - confidentialité totale pour tout votre travail d'analyse de code.
- Control Flow Deobfuscator en ligne - Aucune installation : utilisez le désobfuscateur de flux de contrôle JavaScript directement dans n'importe quel navigateur moderne sans téléchargements, applications ou plugins requis. Comprend un éditeur à deux panneaux, une détection automatique des transitions d'état, une table de mappage état-bloc et une génération de diagrammes de transition.
- Cartographie d'état et analyse de transition : notre désobfuscateur de flux de contrôle fournit un mappage complet d'état à bloc montrant chaque valeur d'état, son résumé de bloc de code associé et toutes les transitions vers d'autres états. Consultez le diagramme de transition d’état complet et comprenez comment le flux de contrôle aplati s’est initialement ramifié.
Cas d'utilisation courants du désobfuscateur de flux de contrôle
- Rétro-ingénierie des bibliothèques JavaScript obscurcies : les analystes de sécurité et les développeurs utilisent le désobfuscateur de flux de contrôle pour procéder à la rétro-ingénierie des bibliothèques JavaScript protégées par l'aplatissement du flux de contrôle. En identifiant le modèle de répartiteur et en mappant les transitions d'état, ils peuvent reconstruire la logique de branchement d'origine cachée derrière la structure de commutateur while(true) aplatie.
- Analyse des scripts malveillants et de phishing : les professionnels de la cybersécurité analysent des échantillons JavaScript malveillants qui utilisent l'aplatissement du flux de contrôle pour échapper à la détection. Le désobfuscateur révèle la logique de branchement cachée, permettant d'identifier les chemins de livraison de charges utiles malveillants, les chaînes de redirection et le code d'exfiltration de données enfouis sous plusieurs transitions d'état.
- Comprendre le comportement des scripts tiers : les développeurs utilisent le désobfuscateur de flux de contrôle pour comprendre ce que font réellement les scripts tiers obscurcis avant de les intégrer. Le mappage d'état révèle les points de décision, les branches d'appels d'API et la logique de collecte de données qui autrement seraient masquées par un flux de contrôle aplati.
- Débogage du code de production obscurci : les développeurs frontend débogant du JavaScript de production minifié et obscurci utilisent le désobfuscateur de flux de contrôle pour tracer les chemins d'exécution. Le diagramme de transition d'état les aide à comprendre le déroulement du programme lorsque les outils de débogage s'interrompent sur des structures de flux de contrôle aplaties.
- Audit de code et recherche de vulnérabilités : les auditeurs de sécurité utilisent le désobfuscateur de flux de contrôle lors des audits de code pour analyser les dépendances tierces qui utilisent l'aplatissement du flux de contrôle. Le mappage état-bloc permet d'identifier les chemins d'exécution menant à des opérations sensibles ou à des points d'accès aux données.
- Apprentissage des techniques d'obscurcissement du flux de contrôle : les étudiants et les développeurs qui apprennent l'obscurcissement avancé de JavaScript utilisent le désobfuscateur de flux de contrôle pour comprendre comment l'aplatissement du flux de contrôle transforme le code de branchement régulier en modèles basés sur le répartiteur. L'analyse côte à côte montre l'entrée obscurcie ainsi que le mappage d'état.
Qu’est-ce que la désobfuscation du flux de contrôle ?
La désobfuscation du flux de contrôle est le processus d'inversion de l'aplatissement du flux de contrôle, une technique d'obscurcissement avancée qui transforme la structure de branchement naturelle d'un programme (instructions if/else, boucles, retours conditionnels) en un répartiteur de machine à états. Au lieu d'une logique conditionnelle lisible, le code utilise une variable d'état et une boucle de répartiteur (généralement while(true) encapsulant une instruction switch) pour contrôler le flux d'exécution. Chaque bloc de code devient un cas dans le commutateur et les transitions entre les blocs sont contrôlées en modifiant la variable d'état. Notre désobfuscateur de flux de contrôle détecte ces modèles, cartographie les transitions d'état et aide à reconstruire la logique de branchement d'origine, ce qui rend le code beaucoup plus facile à comprendre et à analyser.
Comment fonctionne notre désobfuscateur de flux de contrôle
- 1. Coller le code JavaScript aplati : collez le code JavaScript obscurci qui utilise l'aplatissement du flux de contrôle dans le panneau de saisie. L'outil recherche les modèles de répartiteur, notamment while(true) et les boucles contenant des instructions switch avec une variable d'état. Cliquez sur "Charger un exemple de code aplati" pour l'essayer avec un exemple réaliste qui illustre tous les modèles d'aplatissement courants.
- 2. Cliquez sur Analyser le flux de contrôle : le désobfuscateur identifie le modèle de répartiteur, extrait le nom de la variable d'état, trouve toutes les étiquettes de cas et mappe les affectations d'état. Il génère un mappage état-bloc complet montrant chaque valeur d'état, le bloc de code qu'il contrôle et toutes les transitions vers d'autres états. Un diagramme de transition est automatiquement généré montrant le flux entre les états.
- 3. Examiner l'analyse de transition d'état : le panneau d'analyse affiche le diagramme de transition et les statistiques, notamment le type de répartiteur, le nombre d'états et le nombre d'affectations d'état. Le tableau interactif de mappage d'état fournit des informations détaillées sur chaque état : sa valeur, le résumé du bloc de code et tous les états de destination, ce qui vous aide à comprendre la logique de branchement reconstruite.
Quels modèles de flux de contrôle sont détectés
- While-True Dispatcher : le modèle le plus courant utilise {'while(true) { switch(state) }'} . La boucle ne se termine jamais naturellement ; au lieu de cela, les transitions d'état contrôlent quel cas s'exécutera ensuite. C'est le modèle utilisé par les obfuscateurs populaires comme JavaScript Obfuscator et Jscrambler.
- Répartiteur de boucle For : certains obfuscateurs utilisent une boucle for comme répartiteur au lieu de while(true) , parfois avec un compteur de boucle qui fait également office de variable d'état. Le désobfuscateur détecte également ces modèles de répartiteur alternatifs.
- Variations du wrapper de boucle : d'autres types de boucles comme do... while et les structures de boucles imbriquées encapsulant les instructions switch sont également détectées. L'outil identifie la variable d'état et mappe tous les blocs de cas, quelle que soit la structure de la boucle externe.
- Affectations d'état et transitions : les transitions de chaque bloc d'état sont suivies en recherchant toutes les affectations à la variable d'état dans chaque bloc de cas. Le diagramme de transition montre le diagramme de flux complet depuis l’entrée jusqu’aux états terminaux.
Confidentialité, sécurité et limites
Le désobfuscateur de flux de contrôle est 100 % gratuit et aucune inscription n'est requise. Toutes les analyses de code sont effectuées localement dans votre navigateur à l'aide de la correspondance de modèles : votre code obscurci et les résultats de votre analyse ne quittent jamais votre appareil. Il n’y a pas de limite de taille de fichier ni de plafond d’utilisation. Notez que cet outil effectue une détection basée sur des modèles, et non une reconstruction sémantique complète. Un obscurcissement complexe avec plusieurs couches ou valeurs d'état générées par l'exécution peut nécessiter des passes d'analyse supplémentaires. Pour une désobscurcissement complète, combinez-le avec d'autres outils tels que JavaScript Deobfuscator/Unpacker pour le décodage des chaînes hexadécimales et le Variable Name Deobfuscator pour la restauration des identifiants. Conservez toujours votre code source original et lisible sauvegardé dans le contrôle de version.
Foire aux questions
Un désobfuscateur de flux de contrôle JavaScript inverse l'aplatissement du flux de contrôle, une technique d'obscurcissement avancée qui transforme la logique de branchement normale en une machine à états avec un répartiteur de commutateur while (true). Il détecte le modèle de répartiteur, mappe les transitions d'état et reconstruit la logique de branchement d'origine.
L’aplatissement du flux de contrôle restructure le code en une machine à états plats. Au lieu de conditions if/else lisibles, le code utilise une variable d'état et un répartiteur de commutateur while(true) où chaque bloc de code d'origine devient un cas, et l'exécution s'écoule entre les blocs en modifiant la variable d'état.
L'outil détecte les répartiteurs de commutateur while(true), les répartiteurs de boucle for et d'autres variantes de boucle. Il identifie la variable d'état, extrait les étiquettes de cas, mappe les affectations d'état et génère un diagramme de transition d'état complet.
Il fournit une détection basée sur des modèles et un mappage d'état pour aider à reconstruire la logique de branchement. La reconstruction sémantique complète nécessite une compréhension de la sémantique du code au-delà de la correspondance de modèles. À utiliser avec d'autres outils de désobscurcissement pour des résultats complets.
Absolument. Tout le traitement s'effectue localement dans votre navigateur : votre code ne quitte jamais votre appareil. Aucun téléchargement, aucun suivi, aucune inscription requise.
Les obfuscateurs populaires, notamment JavaScript Obfuscator, Jscrambler et les frameworks personnalisés, utilisent l'aplatissement du flux de contrôle, souvent combiné avec le codage de chaînes, le renommage de variables et l'injection de code mort.
Oui – 100 % gratuit, sans inscription, sans compte, sans limite d'utilisation. Analysez n'importe quel code JavaScript autant de fois que nécessaire, pour toujours.