#edit #instrument #transform #call

bin+lib wasm-edit

Edit and instrument already compiled Wasm binaries

7 releases

0.1.7 May 27, 2023
0.1.6 Jan 24, 2023
0.1.5 Dec 13, 2022
0.1.3 Nov 15, 2022

#670 in WebAssembly

Download history 20/week @ 2024-07-01 4/week @ 2024-07-08 33/week @ 2024-07-29 10/week @ 2024-08-05 35/week @ 2024-08-12 13/week @ 2024-08-19 7/week @ 2024-08-26 8/week @ 2024-09-02 36/week @ 2024-09-09 85/week @ 2024-09-16 20/week @ 2024-09-23 45/week @ 2024-09-30

186 downloads per month

MIT license

12KB
218 lines

wasm-edit

Edit and instrument already compiled Wasm binaries

Coredump generation

Moved to https://github.com/xtuc/wasm-coredump.

Install

cargo install wasm-edit

Edit the main memory

Change the initial memory amount (in pages):

wasm-edit edit-memory --initial-memory=1000 < input.wasm > output.wasm

Trace calls to memory.grow

Trace calls to the memory.grow instruction:

wasm-edit instrument-memory < input.wasm > output.wasm

Requires Wasi, but doesn't require any change on the host. Tested with Rust and theoretically working with C/C++ (clang).

Running into stack overflow

Some Wasm binaries have very recursive flow of control, increase the maximum stack size:

$ ulimit -s 160000

Dependencies

~5–14MB
~165K SLoC