Un binario .wasm no está pensado para leerse directamente, pero puede convertirse a WAT, el formato de texto legible de WebAssembly, y analizarse estructuralmente más allá del flujo de instrucciones. El Descompilador WASM hace ambas cosas, todo en tu navegador.
Seamos claros sobre lo que esto es y no es. Esta herramienta no recupera el código fuente original en Rust, C o C++ — esa información desaparece una vez que el compilador genera WASM. Lo que sí recupera con precisión:
- Desensamblado WAT completo, producido por
wabt(el WebAssembly Binary Toolkit), con nombres de depuración aplicados cuando el módulo lleva una sección "name". - Un grafo de llamadas, construido recorriendo el bytecode real de cada función en busca de instrucciones
callycall_indirect— no adivinado a partir del texto WAT. Uncall_indirectmuestra qué firma de tipo de función apunta, nunca una función concreta adivinada, porque el objetivo real solo se resuelve en tiempo de ejecución — eso es un hecho estructural del código, no una limitación de esta herramienta. - Forma del flujo de control por función: profundidad máxima de anidamiento de block/loop/if, y el conteo de cada uno, dando una idea aproximada de cuán compleja es estructuralmente una función sin necesitar un grafo de flujo de control completo.
- Una estimación de la cadena de compilación basada en evidencia — "probablemente Rust", "probablemente Emscripten (C/C++)" o "probablemente AssemblyScript" — basada en evidencia real y verificable: los prefijos de símbolos mangled de Rust, las importaciones características del runtime de Emscripten (
emscripten_*,__cxa_*,__wasm_call_ctors), o las cadenas de ruta~lib/de la biblioteca estándar de AssemblyScript encontradas en los segmentos de datos del módulo. La herramienta siempre muestra la evidencia específica que encontró y formula el resultado como "probablemente" — nunca una certeza, y nunca una suposición sin nada detrás.
Una función cuyo bytecode usa una instrucción fuera del conjunto de opcodes que modela la herramienta (SIMD, atómicos, operaciones de memoria masiva) se marca como "desensamblado parcial" en lugar de mostrarse silenciosamente como completa — la honestidad sobre los límites del análisis importa más que un resultado prolijo.
Útil para auditar la estructura de un módulo .wasm de terceros, entender cómo se llaman entre sí sus funciones, o hacerse una primera idea de un binario desconocido antes de un análisis más profundo.
Tiny Online Tools






