Documentación
/

Primeros pasos

Primeros pasos

Obfuscator.io transforma tu código fuente legible en una versión protegida difícil de entender y de someter a ingeniería inversa. Es perfecto para proteger algoritmos propietarios, la lógica de licencias y el código crítico para el negocio.

Bienvenido a Obfuscator.io

Esta guía te acompaña en la ofuscación de tu primer archivo, la elección de un preset y la comprensión del panel de opciones. Para profundizar más, consulta las secciones Ofuscación VM, Ofuscación básica y Buenas prácticas.

Inicio rápido

  • 1. Pega tu código

    Introduce tu código JavaScript en el panel del editor de la izquierda. Puedes pegar el código directamente o usar la función de subida de archivos para el procesamiento por lotes.

  • 2. Elige un preset

    Selecciona un preset en el desplegable del panel de Opciones. Empieza con Low Obfuscation para cambios mínimos o Medium Obfuscation para una protección equilibrada. Los presets de VM ofrecen la seguridad más fuerte.

  • 3. Haz clic en "Ofuscar"

    Pulsa el botón Ofuscar para transformar tu código. La salida protegida aparece en el panel de la derecha.

  • 4. Copia o descarga

    Usa el botón Copiar o Descargar para obtener tu código ofuscado. La salida está lista para usarse en producción.

Compatibilidad de código Importante

La ofuscación (tanto VM como sin VM) transforma tu código de formas que afectan a determinados comportamientos de JavaScript en tiempo de ejecución. Tu código no debe depender de estas funciones:

  • function.toString() / class.toString()

    La ofuscación cambia por completo la representación del código fuente. El código que parsea o compara el código fuente de funciones se romperá.

  • function.name / class.name

    Los nombres de funciones y clases se renombran a identificadores aleatorios. El código que depende de .name para el registro (logging), la serialización o la reflexión obtendrá nombres ofuscados.

// Before obfuscation
function calculatePrice() { return 100; }
console.log(calculatePrice.name);     // "calculatePrice"
console.log(calculatePrice.toString()); // "function calculatePrice() { return 100; }"

// After obfuscation
console.log(calculatePrice.name);     // "_0x1a2b3c" (random)
console.log(calculatePrice.toString()); // Completely transformed code

Opciones básicas

Antes de ofuscar, configura estas opciones básicas para que coincidan con tu entorno de destino.

Target target

Especifica el entorno de ejecución del código ofuscado:

  • browser (por defecto) - entorno estándar de página web. El código de salida es idéntico al de node, pero algunas opciones específicas del navegador no se pueden usar con el target node.
  • browser-no-eval - igual que browser, pero la salida no usa eval(). Úsalo cuando la página de destino tenga una Content Security Policy que prohíba eval/unsafe-eval.
  • node - entorno Node.js. Las opciones específicas del navegador se desactivan (requieren window/document y no harían nada o lanzarían errores en Node). Algunas defensas de vmSelfDefending que dependen de APIs exclusivas del navegador —detección de navegadores headless, recuperación de realm limpio basada en iframes, comprobaciones anti-inspector/DOM— no se emiten para este target.
  • service-worker - contexto de Service Worker. Sin window, sin document, con un global self diferente.
  • userscript - sandbox de gestor de userscripts (por ejemplo, Tampermonkey). Las defensas de vmSelfDefending se ajustan en consecuencia. Requiere el ofuscador v6.9.0+.
  • bytenode - para código que se compilará a .jsc con bytenode. Requiere el ofuscador v6.13.0+.

Modo estricto strictMode

Controla cómo maneja el ofuscador el modo estricto de JavaScript:

  • Auto (por defecto) - detecta automáticamente el modo estricto a partir del código. El ofuscador analiza tu código en busca de directivas "use strict"
  • Enable - fuerza el tratamiento en modo estricto para todo el código, independientemente de si "use strict" está presente
  • Disable - solo las directivas "use strict" explícitas en el código fuente se tratan como modo estricto

Entender los presets

Los presets son combinaciones de opciones preconfiguradas. Hay dos grupos distintos:

Presets de VM Pro (virtualización de bytecode)

PresetSeguridadRendimientoCaracterísticas
VM LowBuena~10xVM básica, despacho indirecto
VM MediumFuerte~12-15x+ Mezcla de opcodes, codificación, señuelos
VM HighMuy fuerte~15-18x+ Código muerto, opcodes con estado, codificación de pila
VM Ultra HighMáximo~20x++ Capas de ofuscación sin VM

Los números de rendimiento son promedios: el impacto real depende en gran medida del código (por ejemplo, el código con mucha recursión o con bucles críticos será notablemente más lento).

Presets sin VM (ofuscación estándar)

PresetProtecciónRendimientoCaracterísticas
DefaultBásicaMínimoString array, simplify
LowLigera~1.1x+ Autodefensa, desactivar consola
MediumModerada~1.5x+ Flujo de control, código muerto, base64
HighFuerte~2x+ Protección de depuración, codificación rc4

Descripción de la interfaz

  • Editor de entrada - Pega o escribe tu código fuente JavaScript. Arrastra y suelta archivos o usa el botón de subida. También se admiten archivos HTML con scripts en línea Pro.
  • Panel de salida - Muestra el resultado ofuscado. Usa los botones Copiar o Descargar para obtener el código protegido.
  • Selector de presets - Elige presets de VM o sin VM. Los presets de VM están agrupados en la parte superior. El preset determina las opciones base que puedes personalizar.
  • Panel de opciones - Ajusta con precisión la configuración de ofuscación. Haz clic en el icono ? junto a cualquier opción para ver su documentación.
  • Botón Ofuscar - Transforma tu código usando las opciones seleccionadas. Los presets de VM se procesan en el servidor; los presets sin VM se ejecutan en tu navegador.
  • Subida de múltiples archivos Pro - Procesa varios archivos a la vez y descárgalos como ZIP.
  • Panel de historial Pro - Accede a tus ofuscaciones anteriores y restaura la entrada/salida.