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 Obfuscationpara cambios mínimos oMedium Obfuscationpara 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.nameLos nombres de funciones y clases se renombran a identificadores aleatorios. El código que depende de
.namepara 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 denode, pero algunas opciones específicas del navegador no se pueden usar con el targetnode.browser-no-eval- igual quebrowser, pero la salida no usaeval(). Úsalo cuando la página de destino tenga una Content Security Policy que prohíbaeval/unsafe-eval.node- entorno Node.js. Las opciones específicas del navegador se desactivan (requierenwindow/documenty no harían nada o lanzarían errores en Node). Algunas defensas devmSelfDefendingque 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. Sinwindow, sindocument, con un globalselfdiferente.userscript- sandbox de gestor de userscripts (por ejemplo, Tampermonkey). Las defensas devmSelfDefendingse ajustan en consecuencia. Requiere el ofuscador v6.9.0+.bytenode- para código que se compilará a.jsccon 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á presenteDisable- 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)
| Preset | Seguridad | Rendimiento | Características |
|---|---|---|---|
VM Low | Buena | ~10x | VM básica, despacho indirecto |
VM Medium | Fuerte | ~12-15x | + Mezcla de opcodes, codificación, señuelos |
VM High | Muy fuerte | ~15-18x | + Código muerto, opcodes con estado, codificación de pila |
VM Ultra High | Má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)
| Preset | Protección | Rendimiento | Características |
|---|---|---|---|
Default | Básica | Mínimo | String array, simplify |
Low | Ligera | ~1.1x | + Autodefensa, desactivar consola |
Medium | Moderada | ~1.5x | + Flujo de control, código muerto, base64 |
High | Fuerte | ~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.
