Skip to content
Development
Skill

/js-reverse

在使用 js-reverse-mcp 做前端 JavaScript 逆向时使用,适用于签名链路定位、页面观察取证、运行时采样、本地补环境复现与证据化输出。优先适配当前环境里的 js-reverse_* 工具,需要更强的浏览器/CDP/Hook 面时联动 jshookmcp。

From plugin
coco
386200 skills53 agents41 commands
Install
$ npx -y skills add coco-research/coco --skill js-reverse --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/js-reverse

Context preview

The summary Claude sees to decide when to auto-load this skill.

在使用 js-reverse-mcp 做前端 JavaScript 逆向时使用,适用于签名链路定位、页面观察取证、运行时采样、本地补环境复现与证据化输出。优先适配当前环境里的 js-reverse_* 工具,需要更强的浏览器/CDP/Hook 面时联动 jshookmcp。

SKILL.md

js-reverse.SKILL.md
name: js-reverse
description: 在使用 js-reverse-mcp 做前端 JavaScript 逆向时使用,适用于签名链路定位、页面观察取证、运行时采样、本地补环境复现与证据化输出。优先适配当前环境里的 js-reverse_* 工具,需要更强的浏览器/CDP/Hook 面时联动 jshookmcp。
user-invocable: true

MCP 前端 JS 逆向作业规范

适用范围

当任务属于以下场景时优先使用本 skill:

  • 定位接口签名、加密参数、风控字段
  • 观察页面请求链路与脚本来源
  • 在运行时抓取函数入参与返回值
  • 追踪某个 XHR/Fetch/WebSocket 的触发点
  • 把页面证据带回 Node 做本地复现与补环境

如果目标是二进制、APK、PE、ELF、DLL、SO,请改用 `ida-reverse`、`radare2` 或 `reverse-engineering`。

当前环境默认工具映射

本 skill 不假设存在裸工具名,而是默认绑定当前客户端环境里可用的 `js-reverse_*` 工具。

如果当前任务明确提到 `jshookmcp`、`JS hook`、`CDP`、浏览器断点、网络拦截、SourceMap 或 AST 去混淆,也仍然走本 skill;只是把底层 MCP 面切到 `jshookmcp`,而不是把它当成一个新的总入口。

前提条件:`jshookmcp` 不是本地裸命令工具,而是一个要先下载、显式注册并启用的 MCP server。只有在所选客户端(Claude、Codex 等)的 MCP 配置里接入并启用后,相关工具面才真的可调用。

常用映射:

  • `list_scripts` -> `js-reverse_list_scripts`
  • `get_script_source` -> `js-reverse_get_script_source`
  • `search_in_sources` -> `js-reverse_search_in_sources`
  • `break_on_xhr` -> `js-reverse_break_on_xhr`
  • `evaluate_script` -> `js-reverse_evaluate_script`
  • `get_paused_info` -> `js-reverse_get_paused_info`
  • `set_breakpoint_on_text` -> `js-reverse_set_breakpoint_on_text`
  • `list_network_requests` -> `js-reverse_list_network_requests`
  • `get_request_initiator` -> `js-reverse_get_request_initiator`
  • `get_websocket_messages` -> `js-reverse_get_websocket_messages`
  • `take_screenshot` -> `js-reverse_take_screenshot`
  • `new_page` -> `js-reverse_new_page`
  • `navigate_page` -> `js-reverse_navigate_page`
  • `select_page` -> `js-reverse_select_page`
  • `select_frame` -> `js-reverse_select_frame`
  • `pause/resume` -> `js-reverse_pause_or_resume`

如果未来工具名前缀变化,先更新本节,不要在执行时临时猜测。

jshookmcp 的定位

  • 角色:`js-reverse` 的增强执行面,不是独立总控
  • 适合:浏览器自动化、CDP 调试、JS Hook、网络拦截、SourceMap 重建、AST 辅助理解
  • 调用前提:先把 `@jshookmcp/jshook` 下载并注册到 MCP 客户端配置里,然后确保该 server 已启用
  • 建议入口:仍然按 `Observe → Capture → Rebuild` 执行,只是在 `Observe/Capture` 阶段优先调用 jshookmcp 的浏览器与 Hook 能力
  • 与 anything-analyzer 关系:两者都能做浏览器/网络侧取证;anything-analyzer 更偏抓包与 HTTP 分析,jshookmcp 更偏 JS 运行时、CDP、Hook 和源码理解

核心原则

  • `Observe-first`
  • `Hook-preferred`
  • `Breakpoint-last`
  • `Rebuild-oriented`
  • `Evidence-first`

先页面观察,再最小化采样,再做本地补环境,不要跳过取证直接猜环境。

五阶段工作流

1. Observe

目标:先确认目标请求、相关脚本、候选函数,不猜环境。

默认动作:

  • 用 `js-reverse_new_page` 或 `js-reverse_navigate_page` 打开目标页面
  • 用 `js-reverse_list_network_requests` 找目标请求
  • 用 `js-reverse_get_request_initiator` 回溯调用来源
  • 用 `js-reverse_list_scripts`、`js-reverse_search_in_sources` 缩小脚本范围

必须产出:

  • 目标请求 URL 或特征
  • initiator 线索
  • 可疑脚本 URL
  • 初始任务记录

2. Capture

目标:对目标请求做最小侵入采样,拿到参数样例、调用顺序、运行时证据。

规则:

  • 优先 `js-reverse_break_on_xhr`
  • 优先 `js-reverse_evaluate_script` 做轻量运行时观察
  • 命中后先看 `js-reverse_get_paused_info`
  • 必要时再用 `js-reverse_set_breakpoint_on_text`

3. Rebuild

目标:把页面证据整理成本地可迭代的 Node 复现材料。

规则:

  • 本地补环境必须以页面观测证据为依据
  • 不允许空想式补 `window/document/navigator/crypto/storage`
  • 每次只记录一个最小因果补丁决策

4. Patch

目标:按报错和 first divergence 驱动补环境,直到本地脚本稳定跑出目标参数。

规则:

  • 先看缺什么,再补什么
  • 一次只做一个最小补丁决策
  • 每次补丁后立即复测
  • 每次补丁都写入任务记录

5. DeepDive

目标:本地跑通后,再做去混淆、控制流还原、业务逻辑提纯。

规则:

  • 如果当前任务只是出签名,这一阶段可以降级
  • 如果要长期复用算法链路,这一阶段必须做
  • Issue #65 混淆旁路(U–AV §4):JSVMP(AD)→ `E-js-vmp`;CFF+字符串数组(AE)→ `E-js-deobf`;DevTools/debugger 反调试(AF)→ `E-js-anti-debug`。完整触发表见 `../reverse-engineering/references/nonpe-format-cookbook.md`;AST 细节仍用 `references/ast-deobfuscation.md`

执行要求

  • 所有重要步骤都要写入本地 task artifact
  • 如果无法解释为什么调用某个工具,就不要调用
  • 优先使用 `js-reverse_*` 或 jshookmcp 的现成 MCP 能力直接取证,不要先写脚本重造能力
  • 失败时按 `references/fallbacks.md` 回退
  • 输出遵循 `references/output-contract.md`

必读引用

  • 自动化入口:`references/automation-entry.md`
  • 参数默认值:`references/tool-defaults.md`
  • 任务输入模板:`references/task-input-template.md`
  • MCP 专用任务编排:`references/mcp-task-template.md`
  • 任务产物:`references/task-artifacts.md`
  • 本地复现:`references/local-rebuild.md`
  • 补环境:`references/env-patching.md`
  • Node 复现:`references/node-env-rebuild.md`
  • 插桩:`references/instrumentation.md`
  • AST 去混淆:`references/ast-deobfuscation.md`
  • 非 PE/JS 混淆菜谱 U–AV:`../reverse-engineering/references/nonpe-format-cookbook.md`(AD/AE/AF)
  • 回退:`references/fallbacks.md`
  • 输出契约:`references/output-contract.md`

---

Read more
Ships withcoco

CoCo Super Intelligence is the orchestration layer that turns Claude Code, Cursor, or Codex into an engineering department: a routed advisory board, 226 skills, 386 commands, persistent state. Local. Open-core — MIT core; Super Intelligence is proprietary, own-use.

Get the whole plugin

Other skills on coco.