Skip to content
Projects

WhiteNightShadow/hello_js_reverse_skill

View on GitHub

WhiteNightShadow/hello_js_reverse_skill has 1,400 GitHub stars and 262 forks. GitHot measured +2 stars in 24 hours. Last checked 2026-11-07 07:08 UTC. Last push 2026-09-08.

How these counts are measured

🔧 AI-powered JS逆向工程 Skill —— 覆盖加密还原、混淆分析、动态Cookie、WASM逆向、协议对抗等全链路场景,通过 Node.js 实现算法还原与模拟请求。适配 Claude Code / Claude.ai / 其他AI编码工具

Measured star growth

in 24h
+2
in 7 days
Update delayed
in 15 days
Update delayed
in 1 month
Update delayed

Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.

README.md

Original

JS 逆向分析 Skill

面向 Web API 采集、前端签名分析与改版回归的方法论 Skill。它回答三件事:问题在哪一层、走哪条链路、做到什么证据才算收口。站点规则不进主干,只作为待验证的案例留在 cases/。

配套 Camoufox MCP 捕获网络、定位源码和调试 Hook,交付可验证的采集程序。

核心能力

  • 问题路由:按现象定位失败层,给出第一步、对应链路和收口标准
  • 对照实验:控制组、来源替换、单变量回读、结果分类、结论强度
  • 签名来源隔离:取得未使用的值,拆开出值、会话和传输,验证绑定关系与新鲜度
  • 原始 SDK 运行:入口定位、状态回放、生命周期与读值差异,不必还原内部算法
  • 不透明令牌分析:信封、掩码、版式和批次对比
  • 参数跟踪:版本身份分开记录,结论带范围,换版有回归路径
  • 双语言算法还原:Node.js (crypto / crypto-js) 与 Python (hashlib / pycryptodome) 双路径实现
  • JS 混淆与 JSVMP:OB 混淆、控制流平坦化、eval 打包、自定义 VM 的分析策略,实际有效性按目标样本验证
  • Cookie 归因:分清 HTTP Set-Cookie 与 JS 写入
  • WASM 逆向:WebAssembly 模块的加载、环境补全和调用
  • 协议层诊断:用对照实验确认 TLS、HTTP/2、频率限制是否真的是原因
  • 通用采集:分页、去重、JSONL、断点恢复

快速使用

方式一:AI 对话框直接安装(推荐)

在你的 AI 编码工具(Cursor / Claude Code / codex 等)的对话框中输入:

帮我安装下这个skill:hello_js_reverse_skill
项目地址:https://github.com/WhiteNightShadow/hello_js_reverse_skill

AI 会自动完成下载、配置,并在后续 JS 逆向相关任务中自动调用该 Skill。

方式二:手动安装

将本仓库克隆到对应 AI 工具的 skills 目录下:

Cursor:

git clone https://github.com/WhiteNightShadow/hello_js_reverse_skill.git ~/.cursor/skills/hello_js_reverse_skill

Codex:

git clone https://github.com/WhiteNightShadow/hello_js_reverse_skill.git ~/.codex/skills/hello_js_reverse_skill

VSCode(Copilot / Cline 等插件):

git clone https://github.com/WhiteNightShadow/hello_js_reverse_skill.git ~/.vscode/skills/hello_js_reverse_skill

安装完成后,AI Agent 会自动读取 SKILL.md。当你在对话中涉及接口采集、签名分析、动态 Cookie、混淆 JS、WASM 或浏览器环境调试等场景时,Skill 会自动激活。

项目结构

hello_js_reverse_skill/
├── SKILL.md                        # 技能入口:成功分层、问题路由、路线选择、实验纪律
├── README.md
│
├── references/                     # 按需读取
│   ├── problem-routing.md          # 主干:完整链路、路线阶梯、收口格式
│   ├── controlled-experiments.md   # 对照实验与归因
│   ├── signature-source-isolation.md # 未使用的值、绑定、新鲜度
│   ├── original-sdk-runtime.md     # 原始 SDK 运行、状态回放、生命周期
│   ├── opaque-token-analysis.md    # 令牌信封与版式
│   ├── version-tracking.md         # 参数跟踪与版本归档
│   ├── browser-evidence-contract.md # 抓包、Hook、插桩、原生追踪的证据边界
│   ├── task-preflight.md           # 任务级检查与失效重查
│   ├── general-collection.md       # 通用采集、恢复与基线
│   ├── phase-details.md            # 深度分析操作清单
│   ├── analysis-scenarios.md       # 专项场景配方
│   ├── path-a-four-tools.md        # JSVMP 算法追踪
│   ├── path-b-env-emulation.md     # JSVMP 环境复现
│   ├── jsvmp-analysis.md / jsvmp-source-instrumentation.md
│   ├── jsdom-env-patches.md / environment-patch.md
│   ├── crypto-patterns.md / obfuscation-guide.md / transform-validation.md
│   ├── hook-techniques.md / anti-debug.md / protocol-analysis.md
│   ├── common-pitfalls.md / troubleshooting.md
│   ├── mcp-tool-reference.md / mcp-tools.json
│   └── agent-validation.md / real-source-cases.md
│
├── cases/                          # 站点案例,唯一可以出现站点名的地方
├── evals/                          # 方法层的行为回归场景,全部虚构
├── docs/                           # 版本说明与公开方案调研
│
├── scripts/
│   ├── experiment-ledger.py        # 在线门禁、尝试台账、单变量回读
│   ├── opaque-token-inspect.py     # 令牌批次结构分析
│   ├── project-baseline.py         # SDK/签名代码/fixture 哈希与版本身份
│   ├── check-deps.py / check-mcp-contract.py
│   ├── crypto-identifier.js / hook-generator.js / sandbox-runner.js
│   └── real_cases/                 # 真实开源案例的准备与验证
│
├── templates/
│   ├── python-request/ / node-request/   # R1 纯算法
│   ├── vm-sandbox/                       # R2 片段执行
│   ├── wasm-loader/                      # WASM
│   ├── browser-auto/                     # R6 浏览器自动化
│   └── param-tracking/                   # 参数跟踪与实验单模板
│
└── examples/demo-analysis.md

快速开始

1. 环境检查

bash scripts/check-deps.sh

2. 作为 Cursor Skill 使用

将本目录放置到 .cursor/skills/ 下,AI Agent 会自动读取 SKILL.md 获取逆向分析能力。

3. 工具脚本

加密算法识别:

node scripts/crypto-identifier.js "e10adc3949ba59abbe56e057f20f883e"

生成 Hook 代码:

node scripts/hook-generator.js --type=cookie
node scripts/hook-generator.js --type=xhr --target="/api/data"
node scripts/hook-generator.js --type=all

VM 沙箱执行:

node scripts/sandbox-runner.js obfuscated.js --extract-cookie --verbose

令牌批次结构分析:

python scripts/opaque-token-inspect.py samples.txt --encoding base64 --xor-align

在线门禁与单变量回读:

python scripts/experiment-ledger.py gate --ledger runs/ledger.jsonl --batch b1 --budget 3
python scripts/experiment-ledger.py audit --base a.json --candidate b.json --allow x-sign

4. 使用项目模板

根据分析结果选择合适的模板:

场景 语言 模板 何时使用
标准加密算法 Node.js templates/node-request/ 加密可用 crypto 库还原
标准加密算法 Python templates/python-request/ 加密可用 hashlib/pycryptodome 还原
动态 Cookie Node.js templates/vm-sandbox/ 服务端返回 JS 生成 Cookie
WASM 加密 Node.js templates/wasm-loader/ 加密在 .wasm 中实现
TLS/环境依赖 Node.js templates/browser-auto/ 无法脱离浏览器环境

Node.js 项目:

cp -r templates/node-request/ my_project/
cd my_project && npm install
# 修改 main.js 中的配置和加密逻辑
node main.js

Python 项目:

cp -r templates/python-request/ my_project/
cd my_project && pip install -r requirements.txt
# 修改 main.py 中的配置和 utils/sign.py 中的签名逻辑
python main.py

MCP 工具集成

本 Skill 围绕 camoufox-reverse MCP 服务器组织能力(Camoufox 反检测浏览器与统一 API):

  • 源码级插桩 instrumentation(action='install', mode="ast") — MCP 侧 esprima 实现,挑战页可用
  • 签名安全观察 hook_jsvmp_interpreter(mode="transparent") — 仅 prototype getter 替换
  • Cookie 归因 — network_capture 与 Cookie Hook 配合,区分 Set-Cookie 与 document.cookie
  • 响应链追踪 navigate 返回 redirect_chain/final_status,首次不加 Hook 先看响应链
核心工具 用途
launch_browser / navigate 启动反检测浏览器并导航到目标页面
search_code(keyword, script_url=None) 在所有/指定 JS 中搜索关键词
scripts(action='list'|'get'|'save') 列出/获取/保存脚本
evaluate_js(..., world='isolated'|'main') 执行 JS;默认隔离上下文保持兼容,可显式进入页面主世界并按 Frame 定位
hook_function(mode='intercept'|'trace') 自定义 Hook / 函数追踪;可选择主世界与 Frame,跨导航或有界等待动态挂载需设置 persistent=True
get_trace_data 读取或清理函数 Trace,可按 world 与 Frame 过滤
inject_hook_preset 一键预设 Hook(xhr/fetch/crypto/websocket/debugger_bypass/cookie/runtime_probe)
hook_jsvmp_interpreter 一键插桩 JSVMP 解释器(proxy / transparent 两种模式)
instrumentation(action='install'|'log'|'stop'|'reload') 源码级插桩:HTTP 层改写 VMP + 日志 + 重载
network_capture(action='start'|'stop') 网络捕获(支持 capture_body)
list_network_requests / get_network_request 列出/获取捕获的请求
get_request_initiator 获取发起请求的 JS 调用栈(黄金路径)
intercept_request 拦截/修改/Mock 网络请求
cookies(action='get'|'set'|'delete') Cookie 管理
compare_env 采集固定 JS 环境基线;其他属性需通过 properties 或分批 evaluate_js 扩展
trace_property_access(action=...) reverse.5 的 77 点 Gecko 原生追踪(旧兼容构建为 75 点);支持 start→操作→stop、kind/site 过滤和覆盖边界
verify_signer_offline 用真实样本离线验证签名代码
export_state / import_state 保存/恢复浏览器状态
check_environment / reset_browser_state 环境自检 / 清理残留状态

证据边界见 浏览器取证契约,场景配方见 analysis-scenarios.md。

逆向场景覆盖

场景 技术点 参考文档
请求参数签名 MD5/HMAC/自定义哈希 crypto-patterns.md
动态 Cookie eval首包/api预热/指纹Cookie hook-techniques.md
响应数据加密 AES/DES/RC4解密 crypto-patterns.md
OB混淆 字符串还原/CFF/变量重命名 obfuscation-guide.md
JSVMP 虚拟机保护 Hook/插桩/日志分析三板斧 jsvmp-analysis.md
自定义VM I/O追踪/Hook解释器 obfuscation-guide.md
WASM加密 加载/环境补全/导出函数调用 environment-patch.md
疑似 TLS 指纹 传输层诊断实验/curl_cffi protocol-analysis.md
HTTP/2 Node.js http2模块/Python httpx protocol-analysis.md
字体反爬 字体文件解析/CMAP映射 analysis-scenarios.md
WebSocket WS消息分析/协议解析 analysis-scenarios.md
反调试 debugger绕过/检测对抗 anti-debug.md
环境检测 webdriver/蜜罐/指纹 environment-patch.md
首屏挑战 响应链观察/低干扰观测 analysis-scenarios.md
请求失败排查 Cookie/Header/时间戳/签名对比 troubleshooting.md
通用 JSVMP 源码级插桩 HTTP 层源码改写 + hot_keys 指纹学习法 jsvmp-source-instrumentation.md
Cookie 归因分析 HTTP Set-Cookie vs JS document.cookie analysis-scenarios.md
本地值被拒 来源替换、读值差异、状态回放 problem-routing.md
令牌结构 信封、掩码、版式、批次对比 opaque-token-analysis.md
版本跟踪 身份分开记录、结论范围、换版回归 version-tracking.md

技术栈

Node.js

  • crypto (内置): MD5/SHA/AES/DES/HMAC
  • crypto-js: CryptoJS 兼容实现
  • node-forge: RSA/PKI
  • axios: HTTP 请求
  • vm (内置): 沙箱执行
  • WebAssembly (内置): WASM 加载
  • http2 (内置): HTTP/2 请求
  • playwright-core: 浏览器自动化

Python

  • requests / httpx: HTTP 请求(httpx 支持 HTTP/2)
  • pycryptodome: AES/DES/RSA/3DES 加密
  • hashlib (内置): MD5/SHA 系列
  • hmac (内置): HMAC 签名
  • base64 (内置): Base64 编解码
  • execjs: 执行 JS 代码
  • curl_cffi: 带浏览器 TLS 指纹模拟的 HTTP 客户端

调试工具

  • camoufox-reverse MCP v1.8.0: 反检测浏览器逆向分析(统一 API,含主世界/Frame Hook、源码级插桩与可选 Gecko 原生属性追踪)

版本记录

版本 日期 要点
v3.10.0 2026-11-05 问题路由与路线阶梯、对照实验与参数跟踪方法、配套脚本、清理单站全局规则和失效工具名、文档门禁测试
v3.9.0 2026-09-08 真实开源案例公开复现、现代解析/低副作用观测、精确数据与独立Agent复验
v3.8.0 2026-09-08 公开方案研究、任务级检查、三轮Agent实操反馈、证据诊断与可选分页恢复增强
v3.7.0 2026-09-07 通用采集与断点恢复、独立验签、模板修复、三平台 CI 和契约基线
v3.6.1 2026-09-07 对齐 MCP v1.5.1:补充 Trace 清理、未来 Frame 预注册、执行失败不重放和 Hook 卸载边界
v3.6.0 2026-09-04 对齐 MCP v1.5.0;新增主世界与 Frame 选择、动态目标持久 Hook、pending 状态和 Trace 数据读取规范
v3.5.1 2026-09-03 对齐 MCP v1.4.1 / Camoufox Reverse reverse.5;LocalStorage 覆盖迁移至 Firefox 152 LSNG,并纳入可达的 partitioned 分支,protocol 1 不变
v3.5.0 2026-09-03 对齐 MCP v1.4.0 / Camoufox Reverse reverse.4;默认保留 sandbox,新增交互式原生追踪、75 点证据边界、安全 snapshot 与 side-by-side 安装规则
v3.4.1 2026-07-29 增加 AST 源码插桩执行健康门禁;对齐 camoufox-reverse MCP v1.1.1;保持正常插桩流程不变,仅在异常时进入安全降级
v3.3.1 2026-04-21 经验法则精简:移除单站点经验,合并 evaluate_js 相关为 1 条,总数从 24 压缩到 22 条
v3.3.0 2026-04-19 核心层回归扩容:Phase 1-5 详细动作 + 10 个场景速查 + 经验法则回迁核心层;案例层强化(禁动清单 + UA 分支矩阵)
v3.2.1 2026-04-19 Phase 0.5.1 强化案例复用策略;经验法则第 11 条重写
v3.2.0 2026-04-18 移除 MCP session 依赖,Checklist 压缩到三项,cases/ 成为唯一经验库
v3.1.0 2026-04-18 SKILL.md 瘦身,references/ 拆分子文档,工具引用对齐 MCP 合并 API
v3.0.0 2026-04-18 硬约束 Checklist + 红线四条 + 经验法则压缩

Explore related projects