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

4.5 KiB
Raw Blame History

[案例名称:用技术特征命名,如 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: [...]
...

还原代码模板

核心函数

// Node.js 还原代码
# Python 还原代码(如适用)

环境补丁(如需要)

// 环境模拟代码

🚫 禁动清单(实战踩过的"不要碰",可选段)

如果本案例有"AI 演绎偏差导致踩坑"的经验,在此列出。每条格式:

❌ 禁动对象 N:具体对象

  • 理由:为什么禁动(要有实测证据或技术原理)
  • 正确做法:如果真需要某种效果,替代方案是什么

🌐 UA 分支矩阵(如涉及环境伪装,可选段)

如果本案例涉及 jsdom 环境伪装,列出 UA 分支的必补/禁补清单。

UA 分支 1:(如 Firefox UA)

必补:... 禁补:...

踩坑记录

# 坑 现象 解决方法
1
2

变体说明

变体 差异点 影响
A
B

浏览器指纹采集方法(如涉及环境伪装)

仅当还原方案涉及环境模拟(jsdom / vm 沙箱)时需要此段

// 使用 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___