Skip to content

WASM

域名:wasm

WebAssembly dump、反汇编、反编译、优化与离线执行域。

Profile

  • full

典型场景

  • WASM 模块提取
  • WAT/伪代码恢复
  • 离线运行导出函数

常见组合

  • browser + wasm
  • core + wasm

工具清单(17)

工具说明
wasm_capabilities查看当前页面 WASM 捕获和外部工具是否可用。
wasm_dump从当前页面导出已捕获的 WASM 模块。
wasm_disassemble用 wasm2wat 把 .wasm 转成 WAT。
wasm_decompile用 wasm-decompile 把 .wasm 转成类 C 伪代码。
wasm_inspect_sections用 wasm-objdump 查看 .wasm 的节区和元数据。
wasm_offline_run用 wasmtime 或 wasmer 离线运行 .wasm 导出函数。
wasm_optimize用 wasm-opt 优化 .wasm 文件。
wasm_vmp_trace读取当前页面已捕获的 WASM 导入调用轨迹。
wasm_memory_inspect检查当前页面导出的 WebAssembly.Memory。
wasm_to_c将 .wasm 文件转换为 C 源码和头文件(wasm2c/WABT)。
wasm_detect_obfuscation检测 .wasm 文件中的混淆模式(控制流平坦、死代码、不透明谓词、常量编码)。
wasm_instrument_trace为 .wasm 模块生成 JS 插桩包装,追踪调用、内存和控制流。
wasm_string_extract从 .wasm 二进制中提取可打印字符串,按 section 分组,支持 name section 函数名恢复与分类(url/base64/hex-hash/file-path)。是通用二进制字符串工具的 wasm 专用替代。
wasm_diff对两个 .wasm 二进制(原版 vs 补丁版)做 patch-diff 用于漏洞研究:通过 wasm2wat 反汇编两者,输出结构化的函数级差异(新增/删除/变更)+ 每函数 WAT 行级 unified diff。完整 diff 写入工件,响应携带摘要与预览。
wasm_instrument_binary真正的 wasm 级二进制插桩:通过 wasm2wat 反汇编,在每个函数入口插入对导入 trace 函数的调用,再通过 wat2wasm 重新汇编。与 wasm_instrument_trace(仅代理 JS 可见导出)不同,它重写 code section 使每个函数入口可观测。诚实边界:函数入口级追踪,非基本块——宿主需在实例化时提供 trace_fn 导入。
wasm_instrument_block真正的 wasm 级 basic-block 插桩:通过 wasm2wat 反汇编,在每个 block/loop/if 体入口(及函数入口)插入对导入 trace 函数的调用,再用 wat2wasm 重组。与 wasm_instrument_binary(仅函数入口)和 wasm_instrument_trace(仅 JS 代理)不同,本工具观测结构化控制流入口——分支目标(br/br_if/br_table)均被覆盖,因为 Wasm 将其解析为 block/loop/if 标签。宿主须在实例化时提供 trace_block 导入。
wasm_inspect纯 TS wasm 二进制结构检查器(无 wabt 依赖)。直接从二进制解析模块结构面——类型、导入、函数(含 name section 恢复)、表、内存、全局、导出、start、元素/数据/code 段计数、以及自定义 section(name/producers/target_features)——输出结构化 JSON。作为 wabt 不可用时的独立结构路径,与 wasm_inspect_sections(依赖 wasm-objdump)互为补充(参见 wasm_capabilities)。诚实边界:仅结构信息,不做 code body 反汇编;元素/数据/global-init 有效载荷仅报告计数。

Released under AGPL-3.0-only