Desofuscador de JavaScript
Cole um bloco de JavaScript ofuscado, strings codificadas em hex, nomes de variáveis de uma letra, um loop decodificador no topo, e a ferramenta remove as camadas: desescapa strings, insere o array de busca, renomeia variáveis para marcadores legíveis, achata wrappers triviais e embeleza o resultado. Útil para analisar trechos suspeitos que você extraiu de uma página ou de um link colado do pastebin.
Como desofuscar JavaScript
-
1
Cole a fonte ofuscada
Minificado, empacotado ou resultado de ferramentas do estilo `javascript-obfuscator.io`.
-
2
Deixe o parser processar
Arrays de strings são decodificados, sequências numéricas são avaliadas e ramos de código morto são eliminados.
-
3
Aplique renomeação
Variáveis de uma letra `a`/`b`/`c` são renomeadas para `var1`, `var2`, etc. marcadores legíveis, não necessariamente nomes significativos.
-
4
Embelezar
Indente, adicione quebras de linha e produza um código que você realmente pode ler e entender.
Técnicas que o desofuscador reverte
| Ofuscação | Reversão |
|---|---|
| Literais de string hex-escapados | Decodifica \x48\x69 de volta para "Oi" |
| Identificadores unicode-escapados | \u006E\u0061\u006D\u0065 -> nome |
| Array de strings + função decodificadora | Insere o array, chama o decodificador no tempo de análise |
| Dobra de constantes numéricas | 0x1F3 + 5 -> 504 |
Wrappers eval(...) |
Eleva o código interno para o nível superior |
| Achatamento de fluxo de controle (máquina de estados) | Detecta o switch-case, reconstrói o fluxo |
| Código morto / ternários inúteis | Remove ramos que nunca são executados |
Nomes do estilo _0x1a2b3c() |
Substitui por var1, var2 incrementais |
Limitações: o que a ferramenta não faz
- Recuperar nomes de variáveis originais. Uma vez que
userEmailé renomeado paraa, nenhuma ferramenta pode adivinhar de volta. Você obtém uma estrutura legível, não a semântica original. - Desempacotar virtualizadores personalizados. Ofuscadores comerciais pesados (JScrambler, níveis empresariais do Obfuscator.io) introduzem uma VM personalizada que interpreta bytecode. Derrotar isso requer engenharia reversa manual.
- Executar código arbitrário. O desofuscador avalia expressões puras estaticamente. Ele não buscará recursos remotos, criará elementos DOM ou se comunicará com a rede.
Casos de uso típicos
- Pesquisa de segurança: desmontando um script suspeito que chegou em um e-mail ou foi servido por um CDN comprometido.
- Arqueologia de código: recuperando código legado onde o único artefato sobrevivente é um pacote minificado.
- Aprendizado: entendendo o que uma ofuscação de nível tutorial realmente faz nos bastidores.
Segurança e ética
Nunca execute JavaScript não confiável em uma aba do navegador logada em algo importante, o código pode ler cookies, chamar APIs internas e exfiltrar estado. O desofuscador em si opera no código-fonte como texto; ele não executa o código que você cola.
Desofusque apenas o código que você está autorizado a analisar. A engenharia reversa de software licenciado pode ser restrita em sua jurisdição.
Perguntas frequentes
Não. Uma vez que o ofuscador renomeia userEmail para _0x1a2b3c, o nome original é perdido. O desofuscador fornece marcadores legíveis (var1, var2) e estrutura correta, mas não os nomes semânticos originais.
Não. Ela analisa o código como um AST e aplica transformações estáticas. Expressões puras (como 0x1F3 + 5) são dobradas, mas nada toca a rede, cookies ou o DOM.
Sim, mas a saída do bundler é minificada em vez de deliberadamente ofuscada, então o resultado é apenas um código embelezado com wrappers de módulo restaurados. Mapas de origem, se disponíveis separadamente, fornecem nomes muito melhores.
Ferramentas comerciais pesadas (JScrambler empresarial, VMs personalizadas) introduzem um interpretador de bytecode que a análise estática não consegue desfazer. A ferramenta obterá a camada superficial, mas a lógica central permanece opaca sem reversão manual.
Ferramentas relacionadas
Referência da Tabela ASCII
Tabela ASCII completa de 0 a 127 com valores decimais, hexadecimais, octais e binários e notação de referência numérica HTML, incluindo NUL, LF e DEL.
Referência de Caracteres HTML
Lista pesquisável de entidades HTML, seus códigos nomeados e numéricos, e uma cópia com um clique para caracteres e símbolos especiais.
Referência de atalhos de teclado
Pesquise atalhos padrão documentados do VS Code, Chrome e Bash com GNU Readline no macOS, Windows e Linux.
Gerador de EditorConfig
Gere um arquivo .editorconfig com suas regras de estilo e tamanho de indentação, fim de linha, charset e espaços em branco para formatação consistente entre IDEs e editores.
Validador de Email
Valide um endereço de email: verificação de sintaxe RFC 5322, consulta de registro MX em tempo real, além de detalhes de parte local, domínio e comprimento. Nenhum email é enviado.
Formatador de HTML
Formate HTML localmente no navegador com indentação de dois ou quatro espaços. O HTML não é enviado nem validado.
Ferramenta disponível em outros idiomas
- Trình giải mã mã JavaScript (JavaScript Deobfuscator) [VI]
- أداة إزالة التشفير في لغة جافا سكريبت (JavaScript Deobfuscator) [AR]
- Déobfuscateur JavaScript [FR]
- Deobfuscator JavaScript [ID]
- JavaScript-Deobfuscator [DE]
- 자바스크립트 디오프스버커 [KO]
- JavaScript-deobfuscator [SV]
- JavaScript-deobfuscator [NL]
- เครื่องถอดรหัส JavaScript [TH]
- Deobfuskator JavaScriptu [PL]
- JavaScriptデオブファスカータ [JA]
- Desofuscador de JavaScript [ES]
- JavaScript Deobfuscator [EN]
- Deobfuscator JavaScript [IT]
- JavaScript-деобфускатор [RU]
- JavaScript Deobfuscator [TR]
- JavaScript反混淆工具 [ZH]