Humanify: Desenfoca JS con IA y Babel

En el mundo del desarrollo web, el código JavaScript minificado y ofuscado puede ser un obstáculo considerable para su comprensión y depuración. Afortunadamente, están surgiendo proyectos innovadores de código abierto para abordar este desafío. Uno de ellos es Humanify, una herramienta versátil que aprovecha el poder de los Modelos de Lenguaje Grandes (LLMs) como ChatGPT y Gemini, combinado con sofisticados plugins de Babel, para transformar JavaScript complejo e ilegible en un formato amigable para el ser humano.

Humanify tiene como objetivo desofuscar, desminificar, transpilar y desempaquetar código JavaScript. Si bien los LLMs ayudan principalmente a renombrar variables y funciones para una mejor claridad, la carga principal de la transformación estructural del código es manejada por Babel a nivel del Árbol de Sintaxis Abstracta (AST), garantizando que la funcionalidad del código permanezca perfectamente intacta (equivalente 1 a 1).

Características y Beneficios Clave:

  • Renombrado con IA: Utiliza LLMs para sugerir inteligentemente nombres descriptivos para variables y funciones, mejorando enormemente la legibilidad del código.
  • Transformación a Nivel AST: Emplea plugins de Babel personalizados y preexistentes para realizar el desofuscado y la reestructuración del código a un nivel fundamental.
  • Desagrupación de Webpack: Incluye compatibilidad con Webcrack para desagrupar eficazmente aplicaciones JavaScript empaquetadas con Webpack.
  • Modos de Ejecución Flexibles: Ofrece flexibilidad en cómo ejecuta la herramienta:
    • Modo OpenAI/Gemini: Se conecta a servicios de IA basados en la nube (requiere claves API) para una mayor precisión y conveniencia potencial, aunque con los costos asociados dependiendo del tamaño del código.
    • Modo Local: Le permite ejecutar el proceso de desofuscado completamente en su máquina, utilizando su CPU o GPU. Este modo es gratuito y ofrece un excelente rendimiento, especialmente en Macs con Apple Silicon, aunque la precisión a veces puede verse influenciada por el modelo local utilizado.
  • Compatibilidad Multiplataforma: Diseñado para ejecutarse en Node.js, lo que lo hace accesible para una amplia gama de desarrolladores.
  • Facilidad de Instalación: Se puede instalar globalmente a través de npm (npm install -g humanifyjs) o usar directamente a través de npx para pruebas rápidas (npx humanifyjs).

Cómo Empezar con Humanify:

  1. Instalación: Asegúrese de tener Node.js (versión 20 o superior) instalado. Luego, instale Humanify globalmente usando npm install -g humanifyjs.
  2. Uso: Puede ejecutar la herramienta desde su terminal. Por ejemplo, para desofuscar un archivo llamado obfuscated-script.js usando la API de OpenAI:
    humanify openai --apiKey="su-clave-api" obfuscated-script.js
    
    O usando Gemini:
    humanify gemini --apiKey="su-clave-api-de-google" obfuscated-script.js
    
    Para el procesamiento local, primero deberá descargar un modelo (por ejemplo, humanify download 2b) y luego ejecutar:
    humanify local obfuscated-script.js
    

Humanify representa un avance significativo para hacer que el código JavaScript sea más transparente y comprensible. Ya sea que esté trabajando con scripts de terceros, código heredado o simplemente quiera mejorar la mantenibilidad de sus propios proyectos, esta herramienta de código abierto proporciona una solución potente y adaptable. Su combinación de inteligencia artificial y sólidas capacidades de transformación de código la convierte en un elemento indispensable en el conjunto de herramientas de cualquier desarrollador.

Artículo original: Ver original

Compartir este artículo

Tabla de contenidos

Saltar a cualquier sección