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
+11 -3
View File
@@ -221,9 +221,16 @@ AI 输出格式(必须以此结构复述并填空):
#### 0.5.1 命中某个 case 的行为
```
readFile("cases/<命中的 case>.md") # 详读已验证定位路径
按该 case 的 Phase 1-5 执行(不要自创流程)
如果目标站点有本 case 没覆盖的变体 → 分析结束时追加到该 case 的"变体章节"
readFile("cases/<命中的 case>.md") # 读取方案方向 + 踩坑记录
案例提供每个 Phase 的加速指引,不替代 Phase:
Phase 1: 仍然执行侦察,用 scripts(action='save') 保存 SDK 脚本到本地 config/
Phase 2: 仍然执行源码分析
Phase 3: 仍然执行动态验证(确认需要补哪些环境项后再写补丁)
Phase 4: 参考案例踩坑记录编码,环境补丁逐项添加逐项验证
Phase 5: 验证
⚠️ 命中案例 = 知道终点在哪,不等于跳过路上的步骤
```
#### 0.5.2 未命中任何 case 的行为
@@ -302,6 +309,7 @@ search_code(keyword="acw_sc__v2") # Aliyun WAF
8. **case 中的"可验证事实清单"是经验资产**:在 case 文件列出最小可验证事实,下次同站升级时逐条手动核对找出"哪些变了"
9. **verify_signer_offline 是协议代码的 unit test**:用 N 个真实样本离线验证,字符级定位首偏差点;每次改完代码先跑一次,别请真服务端猜
10. **想放弃时先回查 cases/ 和 common-pitfalls.md**:绝大多数"想放弃"的场景,是踩了已知反模式或漏读了相似 case
11. **命中案例不等于跳过分析流程**:案例提供方案方向和踩坑经验,Phase 1-5 仍然正常走,SDK 脚本仍要保存到本地,环境补丁仍要逐项验证后再添加
---
+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:网络捕获定位接口