Files
hello_js_reverse_skill/cases/_template.md
T
白夜 9477d076f2 v3.3.0: 核心层回归扩容 + 案例层强化
SKILL.md:
- Phase 1-5 详细动作从 references/ 拉回核心层
- 10 个场景速查回迁
- 经验法则扩到 24 条(含环境伪装编码纪律)
- 工具名全部对齐 MCP v1.0.0 API
- 版本记录移至 README.md

cases/jsvmp-xhr-interceptor-env-emulation.md:
- 追加禁动清单(5 个禁动对象)
- 追加 UA 分支矩阵(Firefox/Chrome 必补/禁补)
- 追加 6 条踩坑记录 + env-patch 最小化原则

cases/_template.md:
- 追加禁动清单 + UA 分支矩阵可选段骨架

README.md:
- MCP 工具表对齐 v1.0.0 API
- 项目结构补充 cases/ 和完整 references/
- 追加版本记录
- 删除 skill不保存什么 段

references/:
- phase-details.md / mcp-cookbook.md / experience-rules-full.md 顶部加以SKILL.md为准提示
2026-04-19 23:23:31 +08:00

183 lines
4.5 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.
# [案例名称:用技术特征命名,如 OB混淆+AES-CBC+动态密钥]
> 难度:★☆☆☆☆ ~ ★★★★★
> 还原方案:[A: 纯算法还原 / B: 沙箱执行 / C: WASM 加载 / D: 浏览器自动化 / E: jsdom 环境模拟]
> 实现语言:[Node.js / Python / 双语言]
> 最后验证日期:YYYY-MM-DD
> 平台类型:[如:短视频平台 / 电商平台 / 社交平台 / 通用]
---
## 技术指纹(供 Phase 0.5 自动匹配)
### JS 特征
- [ ] 特征1:描述 + 可搜索的关键词/正则
- [ ] 特征2:...
### 参数特征
- [ ] 参数名: [名称] | 长度: [N] | 字符集: [hex/base64/自定义] | 编码: [描述]
- [ ] ...
### 请求特征
- [ ] 特征1:如预热接口、XHR 拦截、多层 SDK 加载顺序
- [ ] ...
### 反调试特征
- [ ] 特征1:如 debugger 陷阱、Function.toString 检测
- [ ] ...
### 混淆类型
- [ ] 类型:OB混淆 / JSVMP / 控制流平坦化 / eval打包 / 其他
### 指纹检测规则(Agent 执行)
```
快速检测命令(30秒内完成):
- search_code(keyword="关键词1") → 命中条件
- search_code(keyword="关键词2") → 命中条件
- list_scripts → 文件体积条件
匹配判定:以上 N 项中命中 M 项以上 → 高置信度匹配
```
---
## 反爬类型判定(v2.7.0 新增)
> 在进入加密方案分析之前,必须先判定反爬类型。参考 SKILL.md「反爬类型识别与工具选择」章节。
```
判定步骤:
1. navigate(url) 不加任何 hook → 观察 redirect_chain
2. 按三分法判断:签名型 / 行为型 / 纯混淆
3. 记录判定结果和依据
判定结果:[签名型 / 行为型 / 纯混淆]
判定依据:[如 "redirect_chain 直接 200,页面后续 XHR 带 X-Bogus 签名参数 → 行为型"]
工具路径:[如 "四板斧全开" / "仅源码级插桩" / "任意组合"]
```
---
## 加密方案
- **算法**:[具体算法名称和模式]
- **密钥来源**:[硬编码 / 接口下发 / 动态计算 / 环境指纹]
- **加密流程**:
1. [步骤1]
2. [步骤2]
3. ...
- **签名公式**:`sign = 算法(参数1 + 参数2 + ... + 密钥)`(如可提取)
---
## 已验证定位路径(Phase 0.5 命中后直接执行)
```
步骤 1: [具体 MCP 操作和关键词]
步骤 2: [...]
步骤 3: [...]
...
```
---
## 还原代码模板
### 核心函数
```javascript
// Node.js 还原代码
```
```python
# Python 还原代码(如适用)
```
### 环境补丁(如需要)
```javascript
// 环境模拟代码
```
---
## 🚫 禁动清单(实战踩过的"不要碰",可选段)
> 如果本案例有"AI 演绎偏差导致踩坑"的经验,在此列出。每条格式:
>
> ### ❌ 禁动对象 N:___具体对象___
> - **理由**:___为什么禁动(要有实测证据或技术原理)___
> - **正确做法**:___如果真需要某种效果,替代方案是什么___
## 🌐 UA 分支矩阵(如涉及环境伪装,可选段)
> 如果本案例涉及 jsdom 环境伪装,列出 UA 分支的必补/禁补清单。
>
> ### UA 分支 1:___(如 Firefox UA)___
> **必补**:...
> **禁补**:...
## 踩坑记录
| # | 坑 | 现象 | 解决方法 |
|---|---|------|---------|
| 1 | | | |
| 2 | | | |
---
## 变体说明
| 变体 | 差异点 | 影响 |
|------|--------|------|
| A | | |
| B | | |
---
## 浏览器指纹采集方法(如涉及环境伪装)
> 仅当还原方案涉及环境模拟(jsdom / vm 沙箱)时需要此段
```javascript
// 使用 camoufox-reverse MCP 在真实浏览器中采集指纹的代码
```
---
## 环境检测差异表(如涉及环境伪装)
> 仅当还原方案涉及环境模拟时需要此段
| 检测点 | 真实浏览器值 | 模拟环境原始值 | 修复方式 |
|--------|-------------|---------------|---------|
| | | | |
---
## 关键经验总结(v2.7.0 新增)
> 本次逆向分析中最有价值的经验,供后续类似场景参考
### 1. [经验标题]
[经验描述]
### 2. [经验标题]
[经验描述]
---
## 可验证事实清单(v3.2.0 新增)
> 下次同站分析(尤其升级后)用这些事实做 checklist:逐条手动 verify,
> 全部通过 → 站点未变,直接用本 case 的协议代码;
> 部分通过 → 变化的事实就是今天的工作范围;
> 全部不通过 → 站点大改,但通过的事实仍是 invariants。
- [ ] `___事实1___`(如:X-Bogus 长度固定 28)
- [ ] `___事实2___`(如:navigator.webdriver === false 触发信号)
- [ ] `___事实3___`(如:签名入口 u[995] offset 50811)
- [ ] `___事实4___`
- [ ] `___事实5___`