Désobfuscateur JavaScript

Dépliez le JavaScript obfusqué pour le rendre lisible et auditeur.

Un script JavaScript reçu est délibérément rendu inintelligible — les variables sont renommées en a, b, c, les chaînes de caractères sont chiffrées, les fonctions sont imbriquées à outrance. C’est l’obfuscation. Un désobfuscateur le rend lisible.

La différence entre minification et obfuscation

La minification supprime les espaces et les commentaires pour économiser des octets. L’obfuscation va plus loin : elle intentionnellement rend le code incompréhensible, en renommant les variables de manière absurde, en chiffrant les chaînes, en appliquant des transformations évasives. La minification est une pratique standard. L’obfuscation est souvent un signe que quelqu’un cache quelque chose. Un script de publicité tiers, un tracker, une bibliothèque propriétaire, un malware potentiel — tous peuvent être obfusqués pour vous empêcher de vérifier leur comportement.

Quand il faut désobfusquer

Un script de contenu tiers arrive sur votre site et vous ne savez pas ce qu’il fait. Un malware suspect se cache dans votre code JavaScript. Vous avez un ancien projet dont le code source est perdu, seul le JavaScript compilé ou obfusqué reste. Une bibliothèque minifiée se comporte bizarrement et vous avez besoin de déboguer sa logique profonde. Dans chacun de ces cas, le désobfuscateur lève le voile.

Ce que le désobfuscateur révèle

  • Les appels de fonction et leur hiérarchie
  • Les variables et leurs rôles réels (dans la mesure du possible)
  • Les chaînes de caractères et les URLs
  • La structure logique du programme
  • Les points d’attaque ou les vecteurs de sécurité

Deux niveaux d’obfuscation

  • Obfuscation simple — Renommage de variables, suppression d’espaces, ajout de code mort. Le désobfuscateur la lève assez facilement en reformatant et en revenant sur les noms.
  • Obfuscation avancée — Chiffrement de chaînes, injection de code évasif, packing/unpacking. C’est plus difficile, mais un bon désobfuscateur peut toujours révéler la logique sous-jacente.

Les limites de la désobfuscation

Un bon obfuscateur peut faire disparaître les noms de variables. Vous voyez a = b + c, mais vous ne savez pas que a signifie userID ou totalPrice. Le désobfuscateur rend le code lisible, pas magiquement reconstruit les noms perdus. Cependant, vous pouvez tracer les appels API, les URLs, et les effets du code pour en deviner l’intention. C’est un travail d’investigation, mais c’est faisable pour tout code JavaScript.

Questions sur la désobfuscation JavaScript

La désobfuscation est-elle légale ?

Oui, pour des raisons de sécurité et d’audit de votre propre site. Pour le code d’un tiers, c’est plus gris légalement, mais techniquement possible.

Peut-on créer un code impossible à désobfusquer ?

Théoriquement non. Tout code JavaScript qui s’exécute doit être compréhensible par le navigateur à un moment ou un autre.

Combien de temps faut-il pour désobfusquer du code complexe ?

Cela dépend de la complexité. Un script simple prend secondes. Un obfuscateur vraiment sophistiqué demande plus de travail manuel.

Puis-je utiliser la désobfuscation pour cracker des logiciels ?

C’est légalement risqué et techniquement difficile. La désobfuscation est un outil d’audit, pas de piratage.

Quel est le contraire de la désobfuscation ?

L’obfuscation elle-même. Après désobfuscation, vous pouvez minifier ou obfusquer à nouveau pour la production.

Cookie
Nous nous soucions de vos données et aimerions utiliser des cookies pour améliorer votre expérience.