Communitygithub.com

js-reverse

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

js-reverse 是什麼?

此技能(skill)專為前端 JavaScript 逆向工程設計,主要應用於 js-reverse-mcp 工具鏈。它提供了一套標準化的工作流程,協助開發者或 AI 代理定位介面簽名、加密參數與風控欄位,並進行頁面觀察取證、運行時採樣、本地補環境復現及證據化輸出。此技能支援 Claude Code、Cursor、Codex 等主流 AI 編程助手平台。其核心工作流程分為五個階段:Observe(觀察)、Capture(捕獲)、Rebuild(重建)、Patch(修補)與 DeepDive(深度分析)。技能會優先適配當前環境中可用的 `js-reverse_*` 工具進行直接取證,避免重新造輪子。當需要更強的瀏覽器自動化、CDP 調試或 JS Hook 能力時,它能與 jshookmcp MCP Server 聯動,作為增強執行面。此外,此技能還包含了對於去混淆、控制流還原及業務邏輯提純的指引,並依賴於多重參考文件與自舉系統來確保工具鏈的完整性與可復現性。

相容平台✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/zhaoxuya520/reverse-skill/tree/main/skills/js-reverse

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

MCP 前端 JS 逆向作業規範

ACTION REQUIRED(讀完後立刻執行)

  1. NOW: 讀取 ../field-journal/precedent-reverse.md — 確認本 skill 的操作是已授權的常規操作
  2. NOW: 確認當前任務是否命中本 skill 的適用範圍
  3. NEXT: 讀取 ../tool-index.md,校驗工具可用性和實際路徑
  4. NEXT: 缺工具時呼叫 bootstrap,不要猜路徑
  5. ACT: 進入"工作流"第一步並執行,不要停在確認狀態

適用範圍

當任務屬於以下場景時優先使用本 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

路由上下文

上游入口: skills/SKILL.md(總控)、routing.md 上游備選:

  • anything-analyzer MCP(埠 23816)的瀏覽器工具可作為替代或補充
  • jshookmcp 可作為更強的瀏覽器/CDP/Hook/Network/SourceMap/AST 執行面
  • reverse-engineering/SKILL.md(如果目標不是前端 JS)

下游出口:

  • 需補環境 → references/env-patching.md
  • 需本地復現 → references/local-rebuild.md / references/node-env-rebuild.md
  • 需去混淆 → references/ast-deobfuscation.md
  • 走不通時回退 → references/fallbacks.md

同級關聯模組: anything-analyzer MCP(瀏覽器自動化和 HTTP 捕獲能力可以互補)


按需自舉(On-Demand Bootstrap)

本 skill 依賴的 MCP 能力可透過統一自舉系統安裝;MCP 客戶端註冊必須顯式選擇目標,預設不會寫任何客戶端全域配置。

自動化能力邊界

能力可自動註冊方式說明
jshookmcp✓npm-mcp(npx 啟動)顯式選擇 Claude / Codex / Both 後註冊
anything-analyzer✓local-http-mcp可自動啟動服務;客戶端註冊須顯式選擇
Node.js✓winget 安裝運行時依賴

自舉方式

# 安裝並註冊 jshookmcp;Codex 可替換為 Claude 或 Both
powershell -File "<skill-root>\scripts\bootstrap-reverse.ps1" -Capability @('jshookmcp') -McpHostTarget Codex

# 註冊並啟動 anything-analyzer
powershell -File "<skill-root>\scripts\bootstrap-reverse.ps1" -Capability @('anything-analyzer') -StartServices -McpHostTarget Codex

注意事項

  • jshookmcp 註冊後仍需在 AI 客戶端中啟用該 MCP server 才能呼叫
  • 不傳 -McpHostTarget 時只安裝/準備能力並返回 registration-required,不修改 Claude 或 Codex 配置
  • anything-analyzer 需要 pnpm 和專案源碼,bootstrap 會自動 clone 並安裝依賴
  • 如果 Node.js 未安裝,bootstrap 會先透過 winget 安裝 Node.js 22

## 任務完成自檢(聲稱完成前 MUST 通過)

  • 我是否執行了工作流中的每一步(而不是只閱讀)?
  • 我是否基於 tool-index 使用了真實工具路徑?
  • 我是否產出了可復現證據(命令/腳本/截圖/報告)?
  • 我是否完成並回寫了 RULES 要求的 Checklist 項?

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

api-security

Use for authorized security assessment of REST, GraphQL, WebSocket, or SOAP APIs, including discovery, authentication, authorization, rate-limit, and CI/CD testing.

apk-reverse

在 CLI 环境下做 Android APK 逆向时使用。适用于 APK 解包、Java 反编译、smali 修改、重打包、Frida 动态 Hook,以及按需切换到 so/native 分析。优先使用本机已安装的 jadx、apktool、frida、adb、ida-reverse、radare2。

attack-chain

Use for authorized multi-stage attack-path planning and orchestration when a task spans reconnaissance, initial access, privilege escalation, lateral movement, or impact assessment. Route single-stage tasks directly to their specialist skill.

binary-diff

|

binary-ninja-reverse

Use for authorized binary analysis in Binary Ninja, including HLIL/MLIL/LLIL inspection, strings/imports/exports, cross-references, types, patch review, Python API automation, and optional Binary Ninja MCP or localhost HTTP integration.

browser-automation

|

browser-extension-reverse

Use for authorized reverse engineering of browser extensions (Chrome/Firefox) including manifest analysis, background workers, and extension-based credential or traffic logic recovery.

case-review

Reviews a reverse-skill case package for scope readiness, Evidence to Finding to Path traceability, work item coverage, timeline references, and optional artifact hash integrity before report handoff.

cloud-k8s

Use for authorized cloud, container, and Kubernetes security assessment including metadata SSRF, IAM misconfig, container escape paths, and cluster RBAC review.

code-audit

Use for authorized source-code security review and SAST workflows including Semgrep, CodeQL patterns, dangerous API hunting, and fix verification.

ctf-sandbox

Thin PRIMARY for CTF / AWD / 靶场 multi-type orchestration. Hands off to the sidecar CTF-Sandbox-Orchestrator. Use when the user says CTF, AWD, 靶场, or 比赛题 and no more specific pwn/APK/IDA route already won.

database-security

Use for authorized database security assessment covering PostgreSQL/MySQL/MSSQL/Mongo/Redis exposure, authz, UDF/command paths, and misconfiguration review.

diagram-generator

generate, refine, validate, and render diagrams from natural language, notes, code snippets, schemas, tables, or existing diagram source. use for flowcharts, swimlanes, sequence diagrams, state diagrams, er diagrams, class diagrams, architecture/c4-style diagrams, dependency graphs, gantt charts, mind maps, user journeys, sankey-style flows, org charts, network graphs, and other visual models. supports mermaid by default, graphviz dot for complex graph layout, plantuml for uml-heavy engineering diagrams, and svg output when direct markup is more reliable.

digital-forensics

Use for authorized digital forensics including memory dumps, disk timelines, PCAP investigation, artifact triage, and IR evidence preservation.

docs-generator

|

dotnet-reverse

.NET / C# 二进制逆向。当目标是 .NET assembly(PE 头含 CLR、.exe/.dll 托管程序)、C# 编译产物(含 NativeAOT)、红队 Sharp* 工具(Rubeus / SharpHound / SharpHound 等)、.NET 混淆程序(ConfuserEx / SmartAssembly / Babel / Eazfuscator)、.NET loader / info-stealer / 套壳 malware 时使用。优先用 dnSpyEx + de4dot,需要 AI 直接操作时联动 dnSpy MCP。不用于纯 native 二进制(走 reverse-engineering / ida-reverse)。

edr-bypass-re

|

email-security

Use for authorized email security review including phishing analysis, header authentication (SPF/DKIM/DMARC), BEC patterns, and mailbox token abuse research.

firmware-pentest

|

ghidra-reverse

Use for free/open reverse engineering with Ghidra (headless or GUI), including decompile, cross-refs, and optional Ghidra MCP workflows when IDA is unavailable.

相關技能