WASM — WebAssembly, format binaire portable
★★★★★
Présentation
WebAssembly est un format bytecode binaire exécuté par les navigateurs (et runtimes WASI), proche d'une machine à pile. De plus en plus utilisé pour la logique sensible côté client — donc cible de reverse en CTF web.
Désassemblage
# WABT (WebAssembly Binary Toolkit)
wasm2wat module.wasm -o module.wat # binaire -> texte lisible
wat2wasm module.wat # retour binaire (patch)
wasm-objdump -x module.wasm # sections, imports/exports
# Décompilation
wasm-decompile module.wasm # pseudo-C Analyse dynamique
Dans le navigateur, poser des breakpoints sur le WASM via les DevTools (onglet Sources affiche le .wat), inspecter la mémoire linéaire, et tracer les appels entre JS et WASM.