fix: 命中案例不跳过Phase——Phase 0.5改为加速指引而非替代流程,case文件拆分方案方向/加速指引/踩坑记录,新增经验法则#11
This commit is contained in:
@@ -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 脚本仍要保存到本地,环境补丁仍要逐项验证后再添加
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -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:网络捕获定位接口
|
||||
|
||||
|
||||
Reference in New Issue
Block a user