feat(v2.6.0): signature-based anti-bot compatibility + MCP v0.5.0 alignment

- Add top-level chapter: anti-bot type classification (signature/behavioral/obfuscation)
- Add observer effect warning for pre_inject_hooks on signature-based anti-bot
- Add hook_jsvmp_interpreter mode parameter (proxy/transparent)
- Update instrument_jsvmp_source AST mode: MCP-side esprima (zero CDN dependency)
- Add fallback_on_error parameter and last_mode_used status field
- Add four-axe applicability labels per anti-bot type
- Rewrite scenario 9 (anti-detection sites) by anti-bot type
- Add scenario 11 signature-type pre-check
- Add observer effect troubleshooting section
- Add experience rules 28-32
- Add AST health diagnostics to jsvmp-source-instrumentation.md
- Add transparent mode examples to mcp-cookbook.md
- Add anti-bot type column to cases/README.md
- Create CHANGELOG_v2.6.0.md
This commit is contained in:
白夜
2026-04-18 01:26:56 +08:00
parent 25fb9513e4
commit 8cbaa8b704
8 changed files with 409 additions and 20 deletions
+44
View File
@@ -507,6 +507,50 @@ MCP 操作:
---
## 前置判断(v2.6.0 新增):先识别 JSVMP 所在反爬类型
在选路径 A / B 之前,先判断 JSVMP 的反爬类型:
```
navigate(url) 不加任何 hook 观察 redirect_chain
│
├─ 反复 412 后才到 200 → 签名型 JSVMP(瑞数/Akamai)
│ └─ 走"签名型专属路径"(见下文)
│
├─ 直接 200 但主请求链带签名参数 → 行为型 JSVMP(TikTok/极验)
│ └─ 按原路径 A / 路径 B 决策树选择
│
└─ 直接 200 无签名参数 → 非 JSVMP 或 VMP 已被跳过
└─ 回 Phase 2.2 常规混淆分析
```
### 签名型 JSVMP 专属路径(v2.6.0 新增)
签名型 JSVMP 与原路径 A / B 的决策树**不适用**,因为:
- 路径 A 的前三板斧(Hook/插桩/日志)会破坏签名
- 路径 B 的 jsdom 环境伪装成本高(58+ 项修复)
签名型 JSVMP 推荐走的路:
```
1. instrument_jsvmp_source(mode="ast", tag="...") (第四板斧)
2. reload_with_hooks() 让插桩后的 VMP 跑完挑战
3. get_instrumentation_log(tag_filter, type_filter="tap_get")
4. 基于 hot_keys 补最小环境,在 jsdom 或纯 Python 侧独立跑
(此时 jsdom 补环境的粒度比路径 B 小得多,只补 hot_keys 显示的属性)
```
源码级插桩失败才回落:
```
A. hook_jsvmp_interpreter(mode="transparent") 仅 prototype getter 替换
- 对签名型大多数情况安全
- 极严格反爬仍能识别 getter identity 变化,此时真的只能走路径 B 全量 jsdom 伪装
B. 路径 B 完整 jsdom 环境伪装(六步法)
- 最重但最稳,是最后的兜底
```
---
## 还原策略决策(v2.5.0 扩充源码级插桩分支)
```