Binary rewriting is a widely adopted technique in software analysis.
WebAssembly (Wasm), as an emerging bytecode format, has attracted great
attention from our community. Unfortunately, there is no general-purpose binary
rewriting framework for Wasm, and existing effort on Wasm binary modification
is error-prone and tedious. In this paper, we present BREWasm, the first
general purpose static binary rewriting framework for Wasm, which has addressed
inherent challenges of Wasm rewriting including high complicated binary
structure, strict static syntax verification, and coupling among sections. We
perform extensive evaluation on diverse Wasm applications to show the
efficiency, correctness and effectiveness of BREWasm. We further show the
promising direction of implementing a diverse set of binary rewriting tasks
based on BREWasm in an effortless and user-friendly manner