Empaquetador/Descompresor de JavaScript
Detecta y descomprime código JavaScript empaquetado, incluido el formato Dean Edwards Packer. Identifica automáticamente la firma del empaquetador, extrae la carga útil codificada y el diccionario de palabras clave y reconstruye el código fuente original legible. Perfecto para investigación de seguridad, ingeniería inversa y comprensión de scripts comprimidos de terceros: todo el procesamiento es local y privado.
Detect and unpack packed JavaScript code, including Dean Edwards Packer format and similar compressors. Paste packed JavaScript code to automatically identify the packer, extract the unpacking algorithm, and reveal the original readable source code. All processing runs locally in your browser - no signup required.
6 1(3,4){2 0=0;2(5 7=0;7<3.8;7++){2 9=3[7];0+=9.8*9.a}b 0}| # | Encoded | Keyword |
|---|---|---|
| 0 | 0 | function |
| 1 | 1 | items |
| 2 | 2 | var |
| 3 | 3 | |
| 4 | 4 | |
| 5 | 5 | for |
| 6 | 6 | |
| 7 | 7 | calculateTotal |
| 8 | 8 | i |
| 9 | 9 | length |
| 10 | a | price |
¿Por qué utilizar nuestro empaquetador/descompresor de JavaScript?
- Detección automática de Packer: detecta instantáneamente el formato Dean Edwards Packer y compresores JavaScript similares. La herramienta busca la firma de la función característica (p,a,c,k,e,d), identifica la base de codificación, extrae diccionarios de palabras clave y revela el código fuente original legible, todo con un solo clic.
- Extracción completa de componentes: vea cada componente extraído del empaquetador: la carga útil codificada, el número base de codificación, el recuento de palabras clave y el diccionario completo de palabras clave con asignaciones codificadas a originales. La tabla de palabras clave muestra el identificador codificado en base N y su palabra clave decodificada correspondiente para cada entrada.
- Copiar y descargar código descomprimido: exporte fácilmente el código descomprimido con los botones Copiar al portapapeles o Descargar como archivo .js. La comparación en paralelo muestra la entrada empaquetada y la salida desempaquetada con cambios de tamaño de bytes para que pueda ver exactamente cuánto espacio ahorró el empaquetado.
- Procesamiento seguro y privado del navegador: todo el descomprimido se ejecuta completamente en su navegador mediante JavaScript. El código empaquetado, los componentes extraídos y el resultado descomprimido nunca salen de su dispositivo. Sin registro, sin carga de datos, sin seguimiento: privacidad total para investigaciones de seguridad y análisis de malware.
Casos de uso comunes para JavaScript Packer/Compressor Unpacker
- Análisis de scripts de seguridad y malware: los investigadores de seguridad y los analistas de SOC utilizan el desempaquetador y el empaquetador para analizar cargas útiles de JavaScript potencialmente maliciosas. El código empaquetado se usa comúnmente en descargas no autorizadas, páginas de phishing y droppers de malware. Al desempaquetarlo se revela la funcionalidad maliciosa real escondida detrás de la capa de compresión.
- Widgets minificados de ingeniería inversa: al analizar widgets de JavaScript de terceros o scripts de seguimiento que utilizan el empaquetado Dean Edwards, el desempaquetador revela los nombres de las variables originales y la estructura del código. Esto ayuda a comprender qué datos recopila el script, a qué API llama y cómo se comporta en su sitio web.
- Práctica educativa de desofuscación: los estudiantes que aprenden a ofuscar y desofuscar JavaScript utilizan el desempaquetador y el empaquetador para comprender cómo funciona el empaquetado de Dean Edwards. La vista de componentes extraídos muestra exactamente cómo la base de codificación, el diccionario de palabras clave y el algoritmo de reemplazo de límites de palabras reconstruyen el código original.
- Resolución de desafíos de CTF: los participantes de Capture The Flag (CTF) se encuentran con JavaScript empaquetado en explotación web y desafíos de ingeniería inversa. El desempaquetador y empaquetador elimina rápidamente la capa de empaquetado, revelando el código subyacente que contiene indicadores, cargas útiles o sugerencias de vulnerabilidad.
- Recuperación de código heredado: cuando se mantienen aplicaciones web antiguas que usaban compresores de JavaScript antes de que la minificación moderna se convirtiera en estándar, el desempaquetador ayuda a recuperar el código fuente legible de scripts empaquetados donde se han perdido los archivos originales no ofuscados.
- Investigación de vulnerabilidades y recompensas de errores: los cazarrecompensas de errores que analizan las aplicaciones de destino a menudo encuentran JavaScript empaquetado en producción. El desempaquetado revela la lógica real de la aplicación, los puntos finales de la API, los flujos de autenticación y las posibles vulnerabilidades de seguridad ocultas detrás de la compresión.
¿Qué es el empaquetado de JavaScript?
El empaquetado de JavaScript es una técnica de compresión de código que reemplaza nombres de variables, nombres de funciones y palabras clave significativos con referencias codificadas breves. El formato más común es Dean Edwards Packer, que utiliza un esquema de codificación base N para representar identificadores de forma compacta. La salida empaquetada está envuelta en una función autoextraíble que, cuando se ejecuta, reconstruye el código original reemplazando los marcadores de posición codificados con las palabras clave reales de un diccionario. Esta técnica se utilizó ampliamente entre los años 2000 y 2010, antes de que las herramientas modernas de minificación como UglifyJS y Terser se convirtieran en estándar.
Cómo funciona nuestro Packer Unpacker
- Escanear y detectar: la herramienta escanea su código JavaScript en busca de la firma característica de Dean Edwards Packer: un eval() que envuelve una función con parámetros (p, a, c, k, e, d). Esta firma identifica de forma única el formato del empaquetador entre otros métodos de compresión.
- Extraer componentes: mediante la extracción de expresiones regulares, la herramienta extrae los cinco componentes clave del empaquetador: la cadena de carga útil codificada (p), el número base de codificación (a, normalmente 62), el recuento de palabras clave (c), la lista de palabras clave empaquetadas (k) y el carácter divisor utilizado para separar las palabras clave. Estos componentes se muestran en la sección de componentes extraídos.
- Reconstruir el código original: el desempaquetador implementa el algoritmo de decodificación de Dean Edwards: convierte cada índice numérico a su forma codificada en base N utilizando los dígitos del 0 al 9 y las letras a-z, luego reemplaza cada aparición de límite de palabra de la forma codificada en la carga útil con la palabra clave correspondiente del diccionario. El resultado es el código fuente JavaScript original legible.
Lo que se desempaqueta
- Referencias de palabras clave: los marcadores de posición numéricos en la carga útil empaquetada (representados como cadenas codificadas cortas como 0, 1, a, b, etc.) se reemplazan con las palabras clave e identificadores de JavaScript reales de la matriz del diccionario.
- Nombres de variables y funciones: los nombres significativos que fueron reemplazados con referencias codificadas durante el empaquetado se restauran a su forma original, revelando el propósito real de cada variable y función.
- Literales de cadena: los valores de cadena que se extrajeron y almacenaron en el diccionario de palabras clave se vuelven a colocar en el código en sus posiciones originales, lo que hace que el código vuelva a ser legible.
- Estructura del código: la estructura general del código (bucles, condicionales, llamadas a funciones, patrones de acceso a objetos) se conserva por completo durante el descomprimido. Sólo los identificadores codificados se transforman a su forma original.
Privacidad y limitaciones
Nuestro JavaScript Packer/Compressor Unpacker procesa todo localmente en su navegador. Su código empaquetado, componentes extraídos y resultados desempaquetados nunca salen de su dispositivo: sin cargas, sin procesamiento en el servidor, sin almacenamiento de datos. Sin embargo, esta herramienta maneja específicamente el formato Dean Edwards Packer y compresores estructuralmente similares. Es posible que no funcione con implementaciones de empaquetadores personalizados, código empaquetado de múltiples capas o herramientas de ofuscación modernas como Jscrambler u Obfuscator.io. Para código empaquetado de múltiples capas, es posible que necesite ejecutar el desempaquetador varias veces, pasando la salida de cada paso como entrada hasta que no se detecten más firmas del empaquetador. Siempre verifique que el código descomprimido sea correcto antes de confiar en él.
Preguntas frecuentes
Un empaquetador/descompresor de JavaScript invierte la compresión del código como el Dean Edwards Packer. Detecta código empaquetado por su firma, extrae componentes codificados y reconstruye el código fuente legible original reemplazando marcadores de posición codificados con palabras clave reales del diccionario de empaquetado.
Dean Edwards Packer envuelve el código en una función autoextraíble con la función de firma (p,a,c,k,e,d). Los parámetros representan: p (carga útil codificada con marcadores de posición), a (base de codificación, generalmente 62), c (recuento de palabras clave), k (lista de palabras clave separadas por comas), e (función de codificación) y d (diccionario opcional).
Nuestro desempaquetador maneja el formato estándar Dean Edwards Packer y compresores estructuralmente similares. Es posible que no funcione con implementaciones de empaquetadores personalizados, código empaquetado de múltiples capas o herramientas de ofuscación modernas que utilizan técnicas completamente diferentes.
El diccionario de palabras clave asigna índices numéricos a identificadores y palabras clave reales de JavaScript. Cada índice se codifica en una cadena de base N y cada aparición como palabra completa en la carga útil se reemplaza con la palabra clave correspondiente. La vista de componentes extraídos muestra la tabla de mapeo completa.
Absolutamente. Todo el descomprimido se realiza íntegramente en su navegador mediante JavaScript. Su código empaquetado, componentes extraídos y resultados desempaquetados nunca salen de su dispositivo. No es necesario registrarse, total privacidad.
Para código empaquetado de varias capas, es posible que necesite ejecutar el desempaquetador varias veces. Pegue la salida descomprimida nuevamente en el panel de entrada y haga clic en Desempaquetar nuevamente. Cada pasada elimina una capa de embalaje hasta que el código sea completamente legible.
La base de codificación (normalmente 62) determina cómo se convierten los índices de palabras clave en identificadores de cadena. La base 62 utiliza dígitos del 0 al 9 y letras az y A-Z. Una base más alta produce identificadores codificados más cortos, lo que da como resultado una salida empaquetada más compacta.
Sí, nuestro JavaScript Packer/Compressor Unpacker es 100% gratuito, no requiere registro, no tiene nivel premium, no tiene límites de uso, no tiene restricciones de tamaño de archivo ni publicidad. Úselo ilimitadamente para cualquier propósito.