Um binário .wasm não foi feito para ser lido diretamente, mas pode ser convertido em WAT, o formato de texto legível do WebAssembly, e analisado estruturalmente além do fluxo de instruções. O Descompilador WASM faz ambos, tudo no seu navegador.
Sejamos claros sobre o que isto é e não é. Esta ferramenta não recupera o código-fonte original em Rust, C ou C++ — essa informação desaparece assim que o compilador gera o WASM. O que ela recupera com precisão:
- Desmontagem WAT completa, produzida pelo
wabt(o WebAssembly Binary Toolkit), com nomes de depuração aplicados quando o módulo traz uma seção "name". - Um grafo de chamadas, construído percorrendo o bytecode real de cada função em busca de instruções
callecall_indirect— não adivinhado a partir do texto WAT. Umcall_indirectmostra qual assinatura de tipo de função ele visa, nunca uma função concreta adivinhada, porque o alvo real só é resolvido em tempo de execução — isso é um fato estrutural do código, não uma limitação desta ferramenta. - Forma do fluxo de controle por função: profundidade máxima de aninhamento de block/loop/if, e a contagem de cada um, dando uma noção aproximada de quão complexa estruturalmente é uma função sem precisar de um grafo de fluxo de controle completo.
- Uma estimativa da cadeia de ferramentas baseada em evidências — "provavelmente Rust", "provavelmente Emscripten (C/C++)" ou "provavelmente AssemblyScript" — baseada em evidências reais e verificáveis: os prefixos de símbolos mangled do Rust, as importações características do runtime do Emscripten (
emscripten_*,__cxa_*,__wasm_call_ctors), ou as strings de caminho~lib/da biblioteca padrão do AssemblyScript encontradas nos segmentos de dados do módulo. A ferramenta sempre mostra a evidência específica que encontrou e formula o resultado como "provavelmente" — nunca uma certeza, e nunca um palpite sem nada por trás.
Uma função cujo bytecode usa uma instrução fora do conjunto de opcodes modelado pela ferramenta (SIMD, atômicos, operações de memória em massa) é marcada como "desmontagem parcial" em vez de ser mostrada silenciosamente como completa — a honestidade sobre os limites da análise importa mais do que um resultado organizado.
Útil para auditar a estrutura de um módulo .wasm de terceiros, entender como suas funções se chamam mutuamente, ou ter uma primeira impressão de um binário desconhecido antes de uma análise mais profunda.
Tiny Online Tools






