Deobfuscator JavaScript
Incolla un blob di JavaScript offuscato, stringhe codificate in esadecimale, nomi di variabili a una lettera, un ciclo di decodifica in cima, e lo strumento sfoglia i livelli: disoffusca le stringhe, in linea l’array di ricerca, rinomina le variabili in segnaposto leggibili, appiattisce i wrapper banali e abbellisce il risultato. Utile per analizzare frammenti sospetti che hai estratto da una pagina o da un link di pastebin incollato.
Come deoffuscare JavaScript
-
1
Incolla la sorgente offuscata
Minificato, impacchettato o prodotto da strumenti in stile `javascript-obfuscator.io`.
-
2
Lascia che il parser lo elabori
Gli array di stringhe vengono decodificati, le sequenze numeriche vengono valutate e i rami di codice morto vengono potati.
-
3
Applica la rinominazione
Le variabili a una lettera `a`/`b`/`c` vengono rinominate in `var1`, `var2`, ecc. segnaposto leggibili, non necessariamente nomi significativi.
-
4
Abbellisci
Indenta, aggiungi nuove righe e produci codice che puoi effettivamente leggere e comprendere.
Tecniche che il deobfuscator inverte
| Offuscamento | Inversione |
|---|---|
| Stringhe letterali esadecimale | Decodifica \x48\x69 in "Hi" |
| Identificatori con escape Unicode | \u006E\u0061\u006D\u0065 -> name |
| Array di stringhe + funzione decodificatrice | In linea l’array, chiama il decodificatore al momento del parsing |
| Folding di costanti numeriche | 0x1F3 + 5 -> 504 |
Wrapper eval(...) |
Solleva il codice interno al livello superiore |
| Appiattimento del flusso di controllo (macchina a stati) | Rileva il switch-case, ricostruisce il flusso |
| Codice morto / ternari inutili | Rimuovi i rami che non vengono mai eseguiti |
Nomi in stile _0x1a2b3c() |
Sostituisci con var1, var2 incrementali |
Limiti: cosa non fa lo strumento
- Recuperare i nomi originali delle variabili. Una volta che
userEmailè rinominato ina, nessuno strumento può indovinarlo. Ottieni una struttura leggibile, non la semantica originale. - Decomprimere virtualizzatori personalizzati. Gli offuscatori commerciali pesanti (JScrambler, livelli aziendali di Obfuscator.io) introducono una VM personalizzata che interpreta il bytecode. Sconfiggere questi richiede ingegneria inversa manuale.
- Eseguire codice arbitrario. Il deobfuscator valuta espressioni pure staticamente. Non recupererà risorse remote, non creerà elementi DOM né comunicherà con la rete.
Casi d’uso tipici
- Ricerca sulla sicurezza: analizzare uno script sospetto arrivato in un’email o servito da un CDN compromesso.
- Archeologia del codice: recuperare codice legacy dove l’unico artefatto sopravvissuto è un pacchetto minificato.
- Apprendimento: comprendere cosa fa effettivamente un’offuscazione a livello tutorial sotto il cofano.
Sicurezza ed etica
Non eseguire JavaScript non affidabile in una scheda del browser loggata in qualcosa di importante, il codice può leggere i cookie, chiamare API interne ed esfiltrare stato. Il deobfuscator stesso opera sul sorgente come testo; non esegue il codice che incolli.
Deobfuscate solo il codice che sei autorizzato ad analizzare. L’ingegneria inversa di software con licenza può essere limitata nella tua giurisdizione.
Domande frequenti
No. Una volta che l’offuscator rinomina userEmail in _0x1a2b3c, il nome originale è perso. Il deobfuscator ti fornisce segnaposto leggibili (var1, var2) e una struttura corretta, ma non i nomi semantici originali.
No. Analizza il codice come un AST e applica trasformazioni statiche. Le espressioni pure (come 0x1F3 + 5) vengono piegate, ma nulla tocca la rete, i cookie o il DOM.
Sì, ma l’output del bundler è minificato piuttosto che deliberatamente offuscato, quindi il risultato è solo codice abbellito con i wrapper dei moduli ripristinati. Le mappe sorgente, se disponibili separatamente, ti danno nomi molto migliori.
Strumenti commerciali pesanti (JScrambler aziendale, VM personalizzate) introducono un interprete di bytecode che l’analisi statica non può districare. Lo strumento otterrà il livello superficiale ma la logica centrale rimane opaca senza inversione manuale.
Strumenti correlati
Riferimento Tabella ASCII
Tabella ASCII completa da 0 a 127 con decimale, esadecimale, ottale, binario e riferimento numerico HTML per ogni carattere, inclusi i codici di controllo come NUL, LF e DEL.
Riferimento ai caratteri HTML
Elenco ricercabile delle entità HTML, dei loro codici nominati e numerici, e copia con un clic per caratteri e simboli speciali.
Generatore di lettere casuali
Genera lettere A-Z casuali. Scegli la quantità, usa maiuscole, minuscole o un mix, e applica il risultato a giochi, spunti o attività in classe.
Riferimento scorciatoie da tastiera
Cerca le scorciatoie predefinite documentate di VS Code, Chrome e Bash con GNU Readline su macOS, Windows e Linux.
Creatore di diagrammi di flusso
Crea nel browser diagrammi di flusso visivi con cinque tipi di nodo, connessioni dirette e download SVG o PNG.
Promemoria Markdown
Riferimento pratico Markdown con anteprime reali ed esempi pronti da copiare per titoli, elenchi, tabelle, codice, link, immagini e sintassi GFM.
Strumento disponibile in altre lingue
- Desofuscador de JavaScript [PT]
- JavaScriptデオブファスカータ [JA]
- Trình giải mã mã JavaScript (JavaScript Deobfuscator) [VI]
- 자바스크립트 디오프스버커 [KO]
- JavaScript-deobfuscator [SV]
- أداة إزالة التشفير في لغة جافا سكريبت (JavaScript Deobfuscator) [AR]
- JavaScript-Deobfuscator [DE]
- Desofuscador de JavaScript [ES]
- Déobfuscateur JavaScript [FR]
- JavaScript-deobfuscator [NL]
- เครื่องถอดรหัส JavaScript [TH]
- Deobfuscator JavaScript [ID]
- Deobfuskator JavaScriptu [PL]
- JavaScript Deobfuscator [EN]
- JavaScript-деобфускатор [RU]
- JavaScript Deobfuscator [TR]
- JavaScript反混淆工具 [ZH]