Files
hello_js_reverse_skill/README.md
T
白夜 b5cf8b121a feat(v2.4.0): JSVMP 双路径攻克体系 + jsdom 环境补丁知识库
基于实战经验重构 JSVMP 分析框架:

- SKILL.md: 新增路径选择决策树(路径 A 算法追踪 vs 路径 B 环境伪装)
- SKILL.md: 路径 B「环境伪装六步法」完整方法论(采集→对比→分级→补丁→验证→端到端)
- SKILL.md: 新增场景 10「JSVMP + jsdom 环境伪装」、解法模式 E
- SKILL.md: 标注三板斧适用边界与局限,经验法则扩充至 22 条
- references/jsdom-env-patches.md: 新增 jsdom 环境补丁知识库(Function.toString 三层防御 / plugins 完整模拟 / DOM 布局属性 / 30+ API 存根)
- cases/: 新增经验库系统(模板 + 首个 JSVMP 实战案例含 58 项环境检测差异全表)
- references/jsvmp-analysis.md: JSVMP 专项分析详细指南
- references/troubleshooting.md: 常见问题排查指南
- templates/python-request/: Python 项目模板
- 各 references 文档增强、Python 技术栈支持、MCP v1.1 适配(44→52 工具)

Made-with: Cursor
2026-04-02 18:10:05 +08:00

241 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Camoufox 逆向分析 Skill
面向逆向分析与爬虫对抗场景的 Skill,围绕 `camoufox-reverse` MCP 构建单一工作流:先用 Camoufox 反检测浏览器完成网络捕获、源码定位、Hook 调试与反检测验证,再按需落地到 Node.js 或 Python 算法还原与自动化调用。
## 核心能力
- **双语言算法还原**: Node.js (`crypto` / `crypto-js`) 与 Python (`hashlib` / `pycryptodome`) 双路径实现
- **加密算法还原**: MD5/SHA/AES/DES/RSA/HMAC/Base64 等常见加密算法的纯算法复现
- **JS 混淆还原**: OB混淆、控制流平坦化、eval打包、自定义VM/JSVMP 等混淆类型的分析策略
- **JSVMP 行为追踪**: Hook/插桩/日志分析三板斧,从行为层面追踪 JS 虚拟机保护的签名生成链路(详见专项指南)
- **动态 Cookie 逆向**: eval首包、api预热、浏览器指纹等 Cookie 生成机制的破解
- **WASM 逆向**: WebAssembly 加密模块的加载、环境补全和调用
- **协议层对抗**: TLS 指纹检测、HTTP/2 强制、频率限制等协议层防护的应对
- **反检测浏览器**: Camoufox C++ 引擎级指纹伪装,绕过 Cloudflare/瑞数/极验等反爬检测
- **单 MCP 工作流**: 统一使用 `camoufox-reverse` 完成源码搜索、Hook 注入、函数追踪、网络分析、请求拦截与反检测验证
- **错误排查体系**: 完整的请求失败排查流程和签名值不一致排查方法论
- **Codex/Claude Code 完整适配**: 内置 Agent 授权指令框架,确保 AI 全力协助完成分析任务
## 快速使用
### 方式一:AI 对话框直接安装(推荐)
在你的 AI 编码工具(Cursor / Claude Code / codex 等)的对话框中输入:
```
请帮我配置skill并在后续触发相关操作的时候查阅该skill:https://github.com/WhiteNightShadow/hello_js_reverse_skill
```
AI 会自动完成下载、配置,并在后续 JS 逆向相关任务中自动调用该 Skill。
### 方式二:手动安装
将本仓库克隆到对应 AI 工具的 skills 目录下:
**Cursor:**
```bash
git clone https://github.com/WhiteNightShadow/hello_js_reverse_skill.git ~/.cursor/skills/hello_js_reverse_skill
```
**Claude Code(Codex CLI):**
```bash
git clone https://github.com/WhiteNightShadow/hello_js_reverse_skill.git ~/.codex/skills/hello_js_reverse_skill
```
**VSCode(Copilot / Cline 等插件):**
```bash
git clone https://github.com/WhiteNightShadow/hello_js_reverse_skill.git ~/.vscode/skills/hello_js_reverse_skill
```
> 安装完成后,AI Agent 会自动读取 `SKILL.md` 获取 Camoufox 逆向分析能力。当你在对话中涉及接口签名分析、反爬对抗、动态 Cookie、混淆 JS、WASM 或浏览器环境调试等场景时,Skill 会自动激活。
## 项目结构
```
hello_js_reverse_skill/
├── SKILL.md # 技能定义(AI Agent 读取的核心文件)
├── README.md # 项目文档
│
├── references/ # 参考文档(知识库)
│ ├── workflow-overview.md # 工作流总览与解法模式决策树
│ ├── crypto-patterns.md # 加密算法识别与 Node.js/Python 双语言还原代码
│ ├── obfuscation-guide.md # JS 混淆类型识别与还原策略
│ ├── hook-techniques.md # Hook 技术大全(13种 Hook 模板)
│ ├── anti-debug.md # 反调试对抗手册(7种绕过方案)
│ ├── environment-patch.md # 环境补全指南(VM沙箱/WASM/jQuery/XHR)
│ ├── protocol-analysis.md # 协议层分析(TLS/HTTP2/UA/频率限制)
│ ├── mcp-cookbook.md # MCP 工具使用手册(5大场景操作步骤)
│ ├── jsvmp-analysis.md # JSVMP 虚拟机保护专项分析指南(三板斧方法论)
│ └── troubleshooting.md # 错误排查指南(请求失败/签名不一致/环境问题)
│
├── scripts/ # 工具脚本
│ ├── check-deps.sh # 环境依赖检查(Node.js + Python)
│ ├── sandbox-runner.js # VM 沙箱执行器(CLI工具)
│ ├── hook-generator.js # Hook 代码生成器(10种Hook模板)
│ └── crypto-identifier.js # 加密算法识别器(密文特征分析)
│
├── templates/ # 项目模板(按解法模式和语言分类)
│ ├── node-request/ # 模式A (Node.js):纯算法还原
│ │ ├── main.js
│ │ ├── utils/encrypt.js
│ │ ├── utils/request.js
│ │ └── package.json
│ ├── python-request/ # 模式A (Python):纯算法还原
│ │ ├── main.py
│ │ ├── utils/sign.py
│ │ ├── utils/request.py
│ │ ├── config/headers.json
│ │ ├── config/keys.json
│ │ └── requirements.txt
│ ├── vm-sandbox/ # 模式B:VM 沙箱执行
│ │ ├── main.js
│ │ ├── utils/sandbox.js
│ │ ├── utils/request.js
│ │ └── package.json
│ ├── wasm-loader/ # 模式C:WASM 加载还原
│ │ ├── main.js
│ │ ├── utils/wasm-loader.js
│ │ ├── utils/env-patch.js
│ │ └── package.json
│ └── browser-auto/ # 模式D:浏览器自动化
│ ├── main.js
│ └── package.json
│
└── examples/ # 示例
└── demo-analysis.md # 完整分析流程示例
```
## 快速开始
### 1. 环境检查
```bash
bash scripts/check-deps.sh
```
### 2. 作为 Cursor Skill 使用
将本目录放置到 `.cursor/skills/` 下,AI Agent 会自动读取 `SKILL.md` 获取逆向分析能力。
### 3. 工具脚本
**加密算法识别**:
```bash
node scripts/crypto-identifier.js "e10adc3949ba59abbe56e057f20f883e"
```
**生成 Hook 代码**:
```bash
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 沙箱执行**:
```bash
node scripts/sandbox-runner.js obfuscated.js --extract-cookie --verbose
```
### 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 项目:**
```bash
cp -r templates/node-request/ my_project/
cd my_project && npm install
# 修改 main.js 中的配置和加密逻辑
node main.js
```
**Python 项目:**
```bash
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 反检测浏览器,52 个工具):
| 核心工具 | 用途 |
|---------|------|
| `launch_browser` / `navigate` | 启动反检测浏览器并导航到目标页面 |
| `search_code` / `search_code_in_script` | 在所有 JS 中搜索关键词 / 在指定脚本中精确搜索 |
| `set_breakpoint_via_hook` | 通过 JS Hook 设置伪断点,捕获参数和返回值(支持持久化) |
| `trace_function` | 追踪函数调用,自动记录参数和返回值(支持持久化) |
| `hook_function` | 注入自定义 Hook(before/after/replace,支持 non_overridable 防覆盖) |
| `inject_hook_preset` | 一键预设 Hook(xhr/fetch/crypto/websocket/debugger_bypass,默认持久化) |
| `freeze_prototype` | 冻结原型方法防止页面 JS 覆盖 Hook |
| `hook_jsvmp_interpreter` | **一键插桩 JSVMP 解释器**(追踪 Function.prototype.apply + 30+ 敏感属性) |
| `get_jsvmp_log` / `dump_jsvmp_strings` | 获取 JSVMP 分析日志 / 提取字符串数组 |
| `compare_env` | 全面收集浏览器环境,用于补环境对照 |
| `trace_property_access` | Proxy 级别属性访问追踪 |
| `add_init_script` | 页面加载前注入脚本(支持 persistent 跨导航重注入) |
| `get_request_initiator` | 获取发起请求的 JS 调用栈(改进 URL 匹配 + 诊断信息) |
| `start_network_capture` | 启动网络捕获(支持 capture_body 捕获响应体) |
| `intercept_request` | 拦截/修改/Mock 网络请求 |
| `check_detection` / `get_fingerprint_info` | 反检测验证与指纹查看 |
| `bypass_debugger_trap` | 一键绕过反调试陷阱 |
| `export_state` / `import_state` | 保存/恢复浏览器状态 |
详见 `references/mcp-cookbook.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指纹 | Camoufox 反检测/curl-impersonate/curl_cffi | `protocol-analysis.md` |
| HTTP/2 | Node.js http2模块/Python httpx | `protocol-analysis.md` |
| 字体反爬 | 字体文件解析/CMAP映射 | SKILL.md |
| WebSocket | WS消息分析/协议解析 | `mcp-cookbook.md` |
| 反调试 | debugger绕过/检测对抗 | `anti-debug.md` |
| 环境检测 | webdriver/蜜罐/指纹 | `environment-patch.md` |
| 反检测站点 | Cloudflare/瑞数/极验绕过 | SKILL.md |
| **请求失败排查** | **Cookie/Header/时间戳/签名对比** | **`troubleshooting.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**: 反检测浏览器逆向分析(52 个工具,含 JSVMP 专项分析)