Humanify : Obfusquez le JS avec l'IA et Babel

September 04, 2025

Dans le monde du développement web, le code JavaScript minifié et obfusquéd peut constituer un obstacle majeur à la compréhension et au débogage. Heureusement, des projets open-source innovants émergent pour relever ce défi. L'un d'eux est Humanify, un outil polyvalent qui exploite la puissance des grands modèles linguistiques (LLM) comme ChatGPT et Gemini, combinée à des plugins Babel sophistiqués, pour transformer du JavaScript complexe et illisible en un format compréhensible par l'homme.

Humanify vise à déboguer, déminifier, transpiler et décompresser du code JavaScript. Si les LLM aident principalement à renommer les variables et les fonctions pour une meilleure clarté, la transformation structurelle du code, qui demande le plus d'efforts, est gérée par Babel au niveau de l'arbre de syntaxe abstraite (AST), garantissant que la fonctionnalité du code reste parfaitement intacte (équivalent 1 pour 1).

Fonctionnalités et avantages clés :

  • Renommage alimenté par l'IA : Utilise les LLM pour suggérer intelligemment des noms descriptifs pour les variables et les fonctions, améliorant considérablement la lisibilité du code.
  • Transformation au niveau de l'AST : Emploie des plugins Babel personnalisés et du commerce pour effectuer le démêlage et la restructuration du code à un niveau fondamental.
  • Dégroupement Webpack : Inclut la prise en charge de Webcrack pour dégroupber efficacement les applications JavaScript groupées par Webpack.
  • Modes d'exécution flexibles : Offre une flexibilité dans la manière dont vous exécutez l'outil :
    • Mode OpenAI/Gemini : Se connecte à des services d'IA basés sur le cloud (nécessite des clés API) pour une précision et une commodité potentiellement plus élevées, bien que cela entraîne des coûts associés en fonction de la taille du code.
    • Mode Local : Vous permet d'exécuter le processus de désobfuscation entièrement sur votre machine, en utilisant votre CPU ou votre GPU. Ce mode est gratuit et offre d'excellentes performances, en particulier sur les Mac Apple Silicon, bien que la précision puisse parfois être influencée par le modèle local utilisé.
  • Compatibilité multiplateforme : Conçu pour fonctionner sur Node.js, le rendant accessible à un large éventail de développeurs.
  • Facilité d'installation : Installable globalement via npm (npm install -g humanifyjs) ou utilisable directement via npx pour des tests rapides (npx humanifyjs).

Démarrer avec Humanify :

  1. Installation : Assurez-vous d'avoir installé Node.js (version 20 ou supérieure). Installez ensuite Humanify globalement en utilisant npm install -g humanifyjs.
  2. Utilisation : Vous pouvez exécuter l'outil depuis votre terminal. Par exemple, pour désobfusquer un fichier nommé obfuscated-script.js en utilisant l'API d'OpenAI :
    humanify openai --apiKey="your-api-key" obfuscated-script.js
    
    Ou en utilisant Gemini :
    humanify gemini --apiKey="your-google-api-key" obfuscated-script.js
    
    Pour le traitement local, vous devrez d'abord télécharger un modèle (par exemple, humanify download 2b), puis exécuter :
    humanify local obfuscated-script.js
    

Humanify représente une avancée significative pour rendre le code JavaScript plus transparent et compréhensible. Que vous ayez affaire à des scripts tiers, du code hérité, ou que vous souhaitiez simplement améliorer la maintenabilité de vos propres projets, cet outil open-source offre une solution puissante et adaptable. Sa combinaison d'intelligence artificielle et de capacités robustes de transformation de code en fait un outil indispensable dans la boîte à outils de tout développeur.

Original Article: Voir l’original

Partager cet article

Table des matières

Aller à n’importe quelle section