Analizza un allegato HTML o SVG alla ricerca di payload nascosti, catene atob/eval e moduli verso altri siti.
Decodificatore multistrato
Lo strumento è in inglese; questa pagina ne fornisce una spiegazione nella tua lingua.
Usa Decodificatore multistrato
Cosa fa
Incolla un testo codificato o offuscato e il decodificatore rimuove uno strato dopo l'altro, mostrando ogni passaggio, finché non resta un testo leggibile o un formato di file noto. Tutto avviene nel tuo browser.
Funziona interamente nel browser: nulla di ciò che inserisci viene caricato online.
Come utilizzare Decodificatore multistrato
- Incolla il testo codificato. Incolla la stringa in Encoded text: un blob Base64 preso da uno script, una lunga stringa esadecimale, testo in percent-encoding o una lista String.fromCharCode.
- Decodifica. Premi Decode layers o Ctrl+Invio. Ogni strato riconosciuto viene rimosso a turno, fino a 12.
- Leggi la catena. Il titolo elenca gli strati in ordine. Ogni passaggio mostra il metodo, la dimensione prima e dopo e un'anteprima.
- Usa il risultato. Copia il testo decodificato, leggi Indicators in the result, oppure usa Send to per HTML Attachment Analyzer, Link Unwrapper, IOC Converter o URL Defanger.
- Intervieni a mano. Se uno strato non viene riconosciuto, scegli un metodo in Decode as e applicalo. Undo last layer torna indietro di un passo.
Esempio
Base64 di gzip codificato in URL
H4sIAAAAAAACA7MpTi7KLCixK8%2FMS8kv18vJT04syczP08soSk1TsFVQyigpKSi20tdPrUjMLchJ1UvOz9UvSy3KTKu0L04tLgYqtTVPM05UsrbRh5oEACvqcc1SAAAA3 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)Tre strati: percent-encoding URL (%2F), Base64 che si decodifica in dati gzip, e gzip stesso, che termina in uno script che manda il browser a https://example.com/verify.
Cosa verifica
| Segnale | Cosa significa |
|---|---|
| Catena di strati | Le codifiche in ordine, ad esempio Hex → Base64. Più strati attorno a un URL breve o a un comando di solito significano che qualcuno voleva nasconderlo. |
| Dimensione per passaggio | Byte in ingresso e in uscita di ogni strato. Uno strato gzip o deflate che cresce molto è una normale decompressione. |
| Testo UTF-16LE | Due byte per carattere, tipico di -EncodedCommand di PowerShell. Un comando decodificato che scarica o avvia qualcosa è un campanello d'allarme. |
| Risultato binario | Se il risultato finale non è testo, viene mostrato un dump esadecimale dei primi 512 byte con il formato rilevato. Copialo come esadecimale o Base64; non eseguirlo mai. |
| Indicators in the result | URL, indirizzi e-mail e indirizzi IPv4 trovati nel testo decodificato, mostrati in forma defanged, con un pulsante per copiarli in forma grezza. |
| Messaggio di arresto | Nessuna ulteriore codifica riconosciuta, il limite di 12 strati, oppure un passaggio che ripeterebbe un risultato precedente. Al limite potrebbero esserci altri strati. |
| Opzione defang | Attiva per impostazione predefinita: URL e indirizzi e-mail nel risultato vengono mostrati in forma defanged. Copy fornisce sempre il testo grezzo. |
| Opzione per continuare a decodificare | Dopo un passaggio manuale con Decode as, la decodifica prosegue automaticamente a meno che tu non deselezioni l'opzione. |
| Elenco Decode as | Base64, Base64 URL-safe, esadecimale, percent-encoding URL, entità HTML, escape, codici carattere, quoted-printable, gzip, zlib, raw deflate e UTF-16LE, per i passaggi che la decodifica automatica salta. |
| Pulsanti di copia | Copy fornisce il testo decodificato grezzo. Un risultato binario offre invece Copy as hex e Copy as Base64. |
Altri esempi
Vettore di test RFC 4648
Zm9vYmFy1 strato: Base64, 8 → 6 byte. Il risultato è il testo foobar, il valore pubblicato in RFC 4648.
Hex attorno a Base64 attorno a un URL
6148523063484d364c793973623264706269356c654746746347786c4c6d356c644339795a584e6c64413d3d2 strati: Hex → Base64 (88 → 44 → 31 byte). Il risultato è https://login.example.net/reset, mostrato in forma defanged ed elencato in Indicators in the result.
Comando PowerShell codificato
UwB0AGEAcgB0AC0AUAByAG8AYwBlAHMAcwAgACcAaAB0AHQAcABzADoALwAvAGUAeABhAG0AcABsAGUALgBvAHIAZwAvAHUAcABkAGEAdABlACcA2 strati: Base64 → testo UTF-16LE, segnalato come tipico di -EncodedCommand di PowerShell. Il risultato è Start-Process 'https://example.org/update', con l'URL elencato come indicatore.
Domande frequenti
Quali codifiche riconosce?
Base64 (standard e URL-safe, padding facoltativo), esadecimale in forma semplice, 0x, \x, con spazi o separato da due punti, percent-encoding URL, entità HTML, escape \x, \u, \u{…} e %u, liste String.fromCharCode, quoted-printable, gzip, zlib e raw deflate, e testo UTF-16LE come un -EncodedCommand di PowerShell. Vengono scompattate anche chiamate come atob('…') o base64_decode('…') e i data: URI.
Perché si è fermato, o ha lasciato il mio testo così com'è?
Uno strato viene accettato solo quando il suo output è testo leggibile, un formato di file noto o un flusso che si decomprime correttamente, quindi le parole comuni che per caso sono Base64 valido vengono lasciate stare. Codifiche brevi o insolite possono quindi sfuggire: usa Decode as per applicare un metodo a mano e Undo per tornare indietro. Si ferma dopo 12 strati.
Il contenuto decodificato viene eseguito o inviato da qualche parte?
No. La decodifica usa semplice JavaScript e il DecompressionStream del browser; il risultato viene mostrato come testo o come dump esadecimale e non viene mai eseguito, visualizzato come pagina o caricato.
Da dove provengono stringhe come queste?
Le pagine e gli allegati di phishing nascondono URL e codice in Base64 o esadecimale, le pagine ClickFix copiano negli appunti comandi PowerShell codificati, e le e-mail arrivano in quoted-printable. Incolla qui la stringa invece di eseguirla.
Posso decodificare uno strato alla volta?
Sì. Deseleziona After a manual step, keep peeling automatically, poi scegli un metodo in Decode as e premi Apply to the current result per ogni passaggio.
Quanto testo posso incollare?
Fino a 5 MB. I risultati più lunghi di 200.000 caratteri vengono accorciati sullo schermo, ma Copy fornisce il testo completo.
Cosa sono quoted-printable e percent-encoding?
Entrambi scrivono un byte come un segno seguito da due cifre esadecimali. Il quoted-printable viene dal corpo delle e-mail, dove =3D sta per =. Il percent-encoding viene dagli URL, dove %2F sta per /.