Tiny Online Tools logoTiny Online ToolssearchRechercher des outils…grid_viewTous les outils
Accueilchevron_rightOutils ingénierie inversechevron_rightAssistant de Désobfuscation JavaScriptAssistant de Désobfuscation JavaScript

Assistant de Désobfuscation JavaScript

Inverse les schémas courants d'obfuscation JavaScript statique : tableaux de chaînes, échappements, constantes calculées, branches mortes et crochets convertis en points.

infoCeci inverse uniquement les schémas d'obfuscation STATIQUE courants : tableaux de chaînes, littéraux échappés, arithmétique littérale, branches toujours vraies/fausses et accès par crochets. Aucun code n'est exécuté, donc il ne peut pas décompresser des chargeurs basés sur eval, résoudre des conditions dépendant de l'exécution, ni inverser l'aplatissement du flux de contrôle au-delà d'un test littéral trivial. Les noms de variables restent intacts.JavaScript obfusqué

Outils similaires

Obfuscateur JavaScript

Obfuscateur JavaScript

Renomme les variables locales, masque les chaînes de caractères et aplatit le flux de contrôle en JavaScript, entièrement dans votre navigateur, sans rien envoyer.

Analyseur de Code Mort JavaScript

Analyseur de Code Mort JavaScript

Collez un bundle JS et trouvez les fonctions de premier niveau sans aucune référence statique dans le fichier — une analyse heuristique d'accessibilité, pas une certitude.

Inspecteur de JavaScript PDF

Inspecteur de JavaScript PDF

Trouve tous les scripts d'un PDF — actions de document, événements de page et d'annotation, calculs de formulaire — et les affiche sans jamais les exécuter.

Extracteur de Chaînes Binaires

Extracteur de Chaînes Binaires

Extrayez les chaînes imprimables ASCII et UTF-16LE de tout fichier binaire, avec décalages d'octets, longueur minimale réglable et filtrage en direct.

Optimiseur de Textures 3D

Optimiseur de Textures 3D

Redimensionnez, convertissez et compressez les textures embarquées dans vos modèles GLB, GLTF, FBX et USDZ, gratuitement et entièrement dans votre navigateur.

Inverseur de GIF

Inverseur de GIF

Inversez l'ordre des images de tout GIF animé dans votre navigateur. Préserve les délais, sans upload, 100% privé.

Générateur de Paires de Polices

Générateur de Paires de Polices

Découvrez des associations de Google Fonts pour vos projets.

apps

Plus d'outils

Parcourez notre collection complète d'outils en ligne gratuits.

Ce que cet outil inverse

De nombreux obfuscateurs JavaScript — y compris celui de ce site — réécrivent le code par un petit ensemble de transformations statiques mécaniques : ils déplacent chaque chaîne littérale dans un seul tableau et remplacent chaque usage par un appel à une fonction d'accès, échappent les caractères ordinaires en séquences \xNN ou \uNNNN, développent une arithmétique simple en expressions équivalentes mais plus longues, enveloppent le vrai code dans un if toujours vrai ou toujours faux, et réécrivent a.b en a['b']. Cet outil inverse exactement ces cinq choses :

  1. Intégration du tableau de chaînes — trouve var _s = ["foo", "bar"]; function _g(i){ return _s[i]; } et remplace chaque appel du type _g(0) dont l'index est un nombre littéral par la vraie chaîne, puis supprime le tableau et la fonction si plus rien ne les utilise.
  2. Décodage des échappements — affiche \x48\x69 sous la forme Hi plutôt que la forme échappée.
  3. Réduction des constantes — transforme 1 + 2 en 3, "a" + "b" en "ab", et une arithmétique littérale similaire, en évitant tout ce qui nécessiterait une supposition (comme diviser par un littéral zéro).
  4. Suppression des branches mortesif (true) { A } else { B } devient simplement A ; un while (false) {} disparaît complètement.
  5. Crochet vers pointobj['nom'] devient obj.nom quand nom est un identifiant valide.

Ce qu'il ne fait pas

Ceci est une correspondance de motifs statique sur un AST, pas un désobfuscateur généraliste. Il n'exécute aucun code, donc il ne peut ni décompresser un chargeur basé sur eval, ni résoudre un prédicat opaque dépendant d'une valeur d'exécution, ni inverser l'aplatissement du flux de contrôle au-delà du cas littéral unique if/while/ternaire ci-dessus. Les noms de variables sont laissés tels quels — _0x1a2b reste _0x1a2b. Si votre fichier ne correspond pas exactement à la forme tableau-de-chaînes + fonction d'accès, cette étape signale simplement zéro appel intégré plutôt que de deviner un autre motif.

Comment ça marche

Le code est analysé en AST avec acorn, parcouru et réécrit avec des transformations écrites à la main qui n'agissent que lorsqu'une valeur est déjà démontrablement littérale, puis régénéré avec astring. Rien n'est envoyé à un serveur : l'analyse et la réécriture se font dans votre navigateur.

Comment l'utiliser

Collez ou saisissez du JavaScript dans l'éditeur puis exécutez. Le résumé indique exactement combien de fois chaque étape s'est déclenchée, pour voir ce qui a changé et ce qui n'a pas changé. Copiez le résultat ou téléchargez-le en fichier .js.