#object-file #replace #exported #function #patch #imported #another

bin+lib wasmonkey

通过替换另一库中的导入函数来修补 WASM 对象文件,以替换一组导出函数

18 个版本

0.1.17 2023 年 1 月 16 日
0.1.16 2022 年 5 月 27 日
0.1.15 2022 年 1 月 4 日
0.1.13 2021 年 5 月 31 日
0.1.4 2018 年 5 月 31 日

#1007 in WebAssembly


用于 5 个 crate(通过 lucetc

ISC 许可证

38KB
1K SLoC

Rust 671 SLoC // 0.0% comments GNU Style Assembly 430 SLoC C 73 SLoC

包含 (Mach-o exe, 9KB) src/a.out

WASMonkey

WASMonkey 修补 WASM 对象文件,将一组导出函数替换为另一库中的导入函数。

用法

USAGE:
    wasmonkey [FLAGS] [OPTIONS] --input <input_file> --output <output_file>

FLAGS:
    -n, --original-names    Use the original name as a key in the builtins map
    -h, --help              Prints help information
    -V, --version           Prints version information

OPTIONS:
    -B, --builtins-additional <builtins_additional>...    Additional builtins function names to replace
    -b, --builtins <builtins_file>                        Path to the builtins library
    -m, --builtins-map <builtins_map_file>                Path to the builtins map file
    -i, --input <input_file>                              Path to the input file
    -o, --output <output_file>                            Path to the output file

builtins_file 是一个包含对 wasm 代码中调用函数的替代实现的对象。

builtin_ 前缀开始的符号将被用于替换。

例如,在 WASM 对象中定义的外部 memmove() 函数将被替换为对导入的 builtin_memmove() 函数的调用,如果 builtin_memmove() 存在于 builtins 文件中。

可以将执行的替换的 JSON 编码映射可选地写入 builtins_map_file

依赖关系

~5–18MB
~214K SLoC