Archivos y páginas

Decodificador multicapa

Se ejecuta localmenteNueva

La herramienta en sí está en inglés; en esta página se explica en tu idioma.

Utiliza Decodificador multicapa

Para qué sirve

Pega un texto codificado u ofuscado y el decodificador quita una capa tras otra, mostrando cada paso, hasta que queda texto legible o un formato de archivo conocido. Todo se ejecuta en tu navegador.

Funciona íntegramente en tu navegador: no se sube nada de lo que introduzcas.

Cómo utilizar Decodificador multicapa

  1. Pega el texto codificado. Pega la cadena en Encoded text (Texto codificado): un bloque Base64 de un script, una cadena hexadecimal larga, texto con codificación porcentual o una lista String.fromCharCode.
  2. Decodifica. Pulsa Decode layers (Decodificar capas) o Ctrl+Intro. Cada capa reconocida se quita por orden, hasta 12.
  3. Lee la cadena de capas. El titular lista las capas en orden. Cada paso muestra el método, el tamaño antes y después, y una vista previa.
  4. Usa el resultado. Copia el texto decodificado, lee Indicators in the result (Indicadores en el resultado) o usa Send to (Enviar a) para HTML Attachment Analyzer, Link Unwrapper, IOC Converter o URL Defanger.
  5. Intervén a mano. Si se pasa por alto una capa, elige un método en Decode as y aplícalo. Undo last layer (Deshacer la última capa) retrocede un paso.

Ejemplo

Base64 codificado como URL que contiene gzip

Entrada
H4sIAAAAAAACA7MpTi7KLCixK8%2FMS8kv18vJT04syczP08soSk1TsFVQyigpKSi20tdPrUjMLchJ1UvOz9UvSy3KTKu0L04tLgYqtTVPM05UsrbRh5oEACvqcc1SAAAA
Resultado (registrado el 2026-10-20)
3 layers: URL percent-encoding → Base64 → gzip

No further encoding recognised.

1
URL percent-encoding
1 escape · 130 → 128 bytes
H4sIAAAAAAACA7MpTi7KLCixK8/MS8kv18vJT04syczP08soSk1TsFVQyigpKSi20tdPrUjMLchJ1UvOz9UvSy3KTKu0L04tLgYqtTVPM05UsrbRh5oEACvqcc1SAAAA
2
Base64
decodes to gzip · 128 → 96 bytes
00000000  1f 8b 08 00 00 00 00 00  02 03 b3 29 4e 2e ca 2c  |...........)N..,|
00000010  28 b1 2b cf cc 4b c9 2f  d7 cb c9 4f 4e 2c c9 cc  |(.+..K./...ON,..|
00000020  cf d3 cb 28 4a 4d 53 b0  55 50 ca 28 29 29 28 b6  |...(JMS.UP.())(.|
… 48 more bytes
3
gzip
96 → 82 bytes
<script>window.location.href = "hxxps://example[.]com/verify?session=7f3a";</script>
Result

Text, 82 bytes.

<script>window.location.href = "hxxps://example[.]com/verify?session=7f3a";</script>

Indicators in the result (1)
URL
hxxps://example[.]com/verify?session=7f3a
Copy indicators (raw)

Tres capas: codificación porcentual de URL (%2F), Base64 que se decodifica en datos gzip y el propio gzip, que termina en un script que envía el navegador a https://example.com/verify.

Qué comprueba

SeñalQué significa
Cadena de capasLas codificaciones en orden, por ejemplo Hex → Base64. Varias capas alrededor de una URL o un comando cortos suelen indicar que alguien quería ocultarlos.
Tamaño por pasoBytes de entrada y de salida de cada capa. Una capa gzip o deflate que crece mucho es una descompresión normal.
Texto UTF-16LEDos bytes por carácter, típico de -EncodedCommand de PowerShell. Un comando decodificado que descarga o inicia algo es una señal de alarma.
Resultado binarioSi el resultado final no es texto, se muestra un volcado hexadecimal de los primeros 512 bytes con el formato detectado. Cópialo como hexadecimal o Base64; no lo ejecutes nunca.
Indicators in the resultURL, direcciones de correo y direcciones IPv4 encontradas en el texto decodificado, mostradas neutralizadas, con un botón para copiarlas tal cual.
Mensaje de paradaNo se reconoce ninguna codificación más, se alcanzó el límite de 12 capas o un paso repetiría un resultado anterior. En el límite puede haber más capas.
Opción de neutralizarActivada por defecto: las URL y direcciones de correo del resultado se muestran neutralizadas. Copy siempre da el texto sin neutralizar.
Opción de seguir quitando capasDespués de un paso manual con Decode as, la decodificación continúa automáticamente salvo que desmarques la opción.
Lista Decode asBase64, Base64 seguro para URL, hexadecimal, codificación porcentual de URL, entidades HTML, escapes, códigos de carácter, quoted-printable, gzip, zlib, deflate sin envoltorio y UTF-16LE, para los pasos que la pasada automática omite.
Botones de copiaCopy da el texto decodificado tal cual. Un resultado binario ofrece en su lugar Copy as hex y Copy as Base64.

Más ejemplos

Vector de prueba de RFC 4648

Entrada
Zm9vYmFy
Resultado

1 capa: Base64, 8 → 6 bytes. El resultado es el texto foobar, el valor publicado en RFC 4648.

Hex alrededor de Base64 alrededor de una URL

Entrada
6148523063484d364c793973623264706269356c654746746347786c4c6d356c644339795a584e6c64413d3d
Resultado

2 capas: Hex → Base64 (88 → 44 → 31 bytes). El resultado es https://login.example.net/reset, mostrado neutralizado y listado en Indicators in the result.

Comando codificado de PowerShell

Entrada
UwB0AGEAcgB0AC0AUAByAG8AYwBlAHMAcwAgACcAaAB0AHQAcABzADoALwAvAGUAeABhAG0AcABsAGUALgBvAHIAZwAvAHUAcABkAGEAdABlACcA
Resultado

2 capas: Base64 → texto UTF-16LE, señalado como típico de -EncodedCommand de PowerShell. El resultado es Start-Process 'https://example.org/update', con la URL listada como indicador.

Preguntas frecuentes

¿Qué codificaciones reconoce?

Base64 (estándar y seguro para URL, con relleno opcional), hexadecimal en forma simple, con 0x, con \x, con espacios o separado por dos puntos, codificación porcentual de URL, entidades HTML, escapes \x, \u, \u{…} y %u, listas String.fromCharCode, quoted-printable, gzip, zlib y deflate sin envoltorio, y texto UTF-16LE como un -EncodedCommand de PowerShell. También se desenvuelven llamadas como atob('…') o base64_decode('…') y las data: URI.

¿Por qué se detuvo, o por qué dejó mi texto como estaba?

Una capa solo se acepta cuando su salida es texto legible, un formato de archivo conocido o un flujo que se descomprime limpiamente, así que las palabras normales que resultan ser Base64 válido se dejan como están. Por eso pueden pasarse por alto codificaciones cortas o poco habituales: usa Decode as (Decodificar como) para aplicar un método a mano y Undo (Deshacer) para retroceder. Se detiene tras 12 capas.

¿Se ejecuta o se envía a algún sitio el contenido decodificado?

No. La decodificación usa JavaScript simple y el DecompressionStream del navegador; el resultado se muestra como texto o como volcado hexadecimal y nunca se ejecuta, se renderiza ni se sube.

¿De dónde salen cadenas como estas?

Las páginas y los adjuntos de phishing ocultan URL y código en Base64 o hexadecimal, las páginas ClickFix copian comandos de PowerShell codificados en tu portapapeles y los correos llegan en quoted-printable. Pega aquí la cadena en lugar de ejecutarla.

¿Puedo decodificar una capa cada vez?

Sí. Desmarca After a manual step, keep peeling automatically (Tras un paso manual, seguir quitando capas automáticamente), y después elige un método en Decode as y pulsa Apply to the current result (Aplicar al resultado actual) en cada paso.

¿Cuánto texto puedo pegar?

Hasta 5 MB. Los resultados de más de 200 000 caracteres se acortan en pantalla, pero Copy da el texto completo.

¿Qué son quoted-printable y la codificación porcentual?

Ambas escriben un byte como un signo seguido de dos dígitos hexadecimales. Quoted-printable procede de los cuerpos de correo, donde =3D representa =. La codificación porcentual procede de las URL, donde %2F representa /.

Explicación de los términos

Investigación de PhishDestroy