☰
JSHookMCP WASM 逆向工程完全指南:反汇编、混淆检测与二进制插桩
2026/10/9 4:55:34 网站建设 项目流程

JSHookMCP WASM 逆向工程完全指南:反汇编、混淆检测与二进制插桩

【免费下载链接】jshookmcpjs hook toolkit that all you need项目地址: https://gitcode.com/gh_mirrors/js/jshookmcp

JSHookMCP(@jshookmcp/jshook)是一款面向 AI Agent 的前端逆向工程工具箱:它以 MCP(Model Context Protocol)服务器的形式运行,内置 735 个工具、覆盖 36 个能力域,把"抓包、反混淆、WASM 反汇编、二进制插桩、内存取证"全部装进一个统一的工具面。本指南带你用最快的方式上手其中最有价值的三条主线:WASM 反汇编、WASM 混淆检测、多层级二进制插桩——无需手写脚本,对 AI 说一句"帮我反汇编这个 wasm"即可完成。

为什么 WASM 逆向需要专门工具链 🎯

如今越来越多网站把核心逻辑(加密、签名、风控、验证码算法)编译成 WebAssembly 塞进前端。面对一段.wasm字节码,你通常需要:

  1. 提取:从正在运行的页面里把 WASM 模块字节抓下来;
  2. 反汇编:转成可读的 WAT 文本或类 C 伪代码;
  3. 检测混淆:判断它是否做了控制流平坦化、不透明谓词、死代码填充;
  4. 插桩追踪:在函数入口或基本块插入探针,观察真实执行路径。

JSHookMCP 把这四步做成了 17 个开箱即用的wasm_*工具,底层打通了 wabt(wasm2wat/wasm-decompile/wasm-objdump/wasm2c)和 Binaryen(wasm-opt),完整工具清单见 docs/reference/domains/wasm.md,工具定义源码在 src/server/domains/wasm/definitions.ts。

一键配置:最快接入步骤 ⚡

JSHookMCP 无需全局安装。在 Claude Desktop / Cursor 等 MCP 客户端的claude_desktop_config.json中加入:

{ "mcpServers": { "jshook": { "command": "npx", "args": ["-y", "@jshookmcp/jshook@latest"], "env": { "MCP_TOOL_PROFILE": "search" } } } }
  • search档只加载约 3K token 的工具元数据,靠 BM25 + 向量混合检索按需找工具,适合新手起步;
  • 任务变复杂后把MCP_TOOL_PROFILE提升为workflow或full(全部 735 个工具)即可。

完整配置说明见 docs/guide/configuration.md,快速入门见 docs/guide/getting-started.md。

WASM 反汇编三步走:从页面到伪代码 🔍

推荐工作流是经典的三段式(也是官方 README 给出的标准场景):

步骤工具做什么
① 提取wasm_dump从当前页面导出已捕获的 WASM 模块;若页面没暴露,autoInject=true会自动注入字节捕获钩子并刷新页面重试
② 反汇编wasm_disassemble用wasm2wat把.wasm转成 WAT 文本格式
③ 反编译wasm_decompile用wasm-decompile转成带类型信息的类 C 伪代码

配套的辅助工具同样值得了解:

  • wasm_inspect_sections:用wasm-objdump查看节区、导入/导出、内存与表结构;
  • wasm_inspect:纯 TypeScript结构解析器,不依赖 wabt 也能输出类型、导入、导出、函数名(含 name section 恢复)等结构化 JSON,是 wabt 缺失时的独立兜底路径;
  • wasm_string_extract:按 section 分组提取可打印字符串,自动识别 url / base64 / hex-hash / 文件路径,并支持 name section 函数名恢复;
  • wasm_offline_run:用 wasmtime / wasmer 直接离线运行导出的函数,验证算法逻辑;
  • wasm_memory_inspect:检查页面导出的WebAssembly.Memory,多实例页面可精确指定实例下标。

对新手最直观的体验是:让 AI Agent 依次调用这三个工具,几秒钟就能拿到一份可读的伪代码,而不用自己搭 wabt 环境。

WASM 混淆检测:一眼识别保护手段 🛡️

拿到伪代码后,先别急着硬读——用wasm_detect_obfuscation做一次体检。它会扫描四类典型混淆模式:

  • 不透明谓词(opaque predicates)
  • 控制流平坦化(control-flow flattening)
  • 死代码 / 无效操作填充(bogus ops)
  • 常量编码

verbose=true时输出会附带详细的模式证据,方便你判断混淆强度、决定是先做wasm_optimize(wasm-opt的 O1~O4/Os/Oz 档位)简化,还是直接上插桩动态追踪。

三层二进制插桩:从 JS 代理到基本块探针 🕵️

JSHookMCP 在wasm域里提供了三个粒度递进的插桩工具,这是它与"包一层字符串"式工具的根本区别:

  1. wasm_instrument_trace(JS 层):为.wasm模块生成 JS 插桩包装,代理 JS 可见的导出函数,追踪 call / memory / branch / loop / local 事件,成本最低;
  2. wasm_instrument_binary(函数入口层):真正的 WASM 级插桩——wasm2wat反汇编后在每个函数入口插入对导入trace_fn的调用,再经wat2wasm重新汇编,重写 code section 使每个函数入口可观测;
  3. wasm_instrument_block(基本块层):在每个 block/loop/if 体入口(含函数入口)插入对trace_block的调用,覆盖br/br_if/br_table分支目标——因为 Wasm 把分支解析为 block/loop/if 标签,所以控制流入口能被完整观测。

后两级属于真正的二进制插桩,宿主只需在实例化时提供对应的 trace 导入函数即可。此外wasm_diff支持对"原版 vs 补丁版"两个 wasm 做函数级 + WAT 行级 unified diff,是漏洞研究里做 patch-diff 的利器。

组合拳:JS 反混淆 + 进程级二进制插桩 🔗

WASM 很少孤立存在——它通常藏在一坨被混淆的 JS 里。JSHookMCP 的core域提供了完整的 JS 侧配合工具:

  • search_in_scripts:按关键词/正则在已采集脚本中检索;
  • deobfuscate:基于 webcrack 的 JS 反混淆,支持 bundle 解包与 VM 级深度反混淆;
  • js_deobfuscate_jsvmp:还原 JSVMP/VM 保护的 JavaScript 字节码;
  • understand_code:对代码结构、行为与风险做语义分析。

对应实现位于 src/modules/deobfuscator/,例如 LLMDeobfuscator.ts 与 JSVMPDeobfuscator.ts。官方推荐的路径是:search_tools→deobfuscate→search_in_scripts→understand_code,工具详情见 docs/reference/domains/core.md。

如果目标不止是前端,还有 46 个工具的binary-instrument域可用:Frida 桥接(spawn/attach/内存扫描/符号枚举)、Ghidra 与 IDA 反编译桥接、系统调用 hook、APK 加固识别与密钥候选扫描等,见 docs/reference/domains/binary-instrument.md。典型链路是:wasm_dump→wasm_disassemble→generate_hooks→memory_breakpoint,从 WASM 一路跟到进程内存断点。

常用命令与文档索引 📚

目的命令/入口
构建后启动pnpm build && pnpm start
多 Agent 共享守护进程pnpm daemon(Streamable HTTP,默认回环绑定)
运行单测pnpm test
查看某会话激活了哪些域调用coverage_report元工具
  • 项目主文档:README.md(含能力总览与全部使用场景表)
  • WASM 域工具清单:docs/reference/domains/wasm.md
  • 二进制插桩域工具清单:docs/reference/domains/binary-instrument.md
  • 最佳实践与架构说明:docs/guide/best-practices.md

💡 小贴士:所有工具都带有readOnlyHint/destructiveHint等安全标注,配合describe_tool查看 JSON Schema、call_tool做参数校验后再执行,新手也能放心让 AI 代劳逆向工作流。

【免费下载链接】jshookmcpjs hook toolkit that all you need项目地址: https://gitcode.com/gh_mirrors/js/jshookmcp

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询