fix: 命中案例不跳过Phase——Phase 0.5改为加速指引而非替代流程,case文件拆分方案方向/加速指引/踩坑记录,新增经验法则#11

This commit is contained in:
白夜
2026-04-19 16:13:49 +08:00
parent 8c6330c98c
commit 59e52c5490
2 changed files with 35 additions and 4 deletions
+24 -1
View File
@@ -72,7 +72,30 @@
---
## 已验证定位路径(Phase 0.5 命中后直接执行)
## 方案方向
jsdom 环境伪装,喂入-截出策略截获 a_bogus。环境值必须与 UA 自洽。
## 各 Phase 加速指引
- **Phase 1**: `search_code(keyword="_SdkGlueInit")` 定位配置;`scripts(action='save')` 保存三件套(webmssdk.es5.js / bdms.js / sdk-glue.js)到 `config/`
- **Phase 2**: 加载顺序 webmssdk → bdms → sdk-glue → `_SdkGlueInit`;签名在 XHR send 阶段追加
- **Phase 3**: 用 Camoufox `compare_env` + `evaluate_js` 分批采集真实环境,与 jsdom 逐项 diff,**确认需要补的环境项范围后再写补丁**
- **Phase 4**: jsdom 配置需 `resources:'usable'`;XHR Hook 必须在 SDK 加载前安装;`scanPrototypeChain` 的 `Object.prototype` 边界不能突破
- **Phase 5**: 连续 ≥5 次请求验证,200 + 空 body = 环境指纹不对不是算法错
## 踩坑记录
- **不要对 Object.prototype / Array.prototype 做 markNative**,会破坏 JSVMP 自身运行
- **SDK 脚本必须保存到本地**(`scripts(action='save')`),不要每次从 CDN 下载
- 签名 192 字符但服务端返回空 body = 环境指纹不对,不是算法错
- **环境补丁逐项添加逐项验证**,不要批量添加后排查
- Firefox 和 Chrome 环境都可以工作,关键是所有值与 UA 自洽
- XHR Hook 顺序:我方 Hook → SDK 加载(保存 Hook 后的引用)→ JSVMP 调用时经过我方 Hook
## 原始定位路径(参考,不要跳过 Phase 直接照做)
> 以下是首次分析时的实际步骤记录,供理解方案演进过程。实战时仍需走 Phase 1-5。
### Phase 1:网络捕获定位接口