sanitize: replace all site/vendor names with abbreviations (RS/JY/TK)

This commit is contained in:
白夜
2026-04-18 09:34:42 +08:00
parent 2ae0c35a6e
commit 94f71bfcdb
11 changed files with 92 additions and 92 deletions
@@ -1,6 +1,6 @@
# 案例:通用 VMP 源码级插桩(骨架模板)
> **v2.5.0 骨架案例**。本文是一个**方法论模板**,不是某个具体站点的案例。适用于:瑞数 5/6、Akamai sensor_data v2/v3、webmssdk、obfuscator.io 等所有"算法封装在字节码 dispatch 循环里"的 VMP。
> **v2.5.0 骨架案例**。本文是一个**方法论模板**,不是某个具体站点的案例。适用于:RS 5/6、Akamai sensor_data v2/v3、webmssdk、obfuscator.io 等所有"算法封装在字节码 dispatch 循环里"的 VMP。
>
> 使用方式:
>
@@ -20,7 +20,7 @@
- 固定长度签名参数(128/192/256 字符) + Base64 变体(有 `-_` 替换 `+/`) 或 hex
- 典型参数名:`a_bogus` / `_signature` / `X-Bogus` / `msToken` / `_m_h5_tk` / `acw_tc` / `FSSBBIl1UgzbN7N`
- **请求特征**:
- 首包返回 412(瑞数)或 403(Akamai)+ 动态 cookie 写入后通过
- 首包返回 412(RS)或 403(Akamai)+ 动态 cookie 写入后通过
- 存在预热接口(如 `/challenge` / `/akam/11/*` / `/v1/gen_token`)
- Cookie 中有多个动态字段(JS 写的 + HTTP Set-Cookie 发的)
- **反调试特征**:
@@ -83,7 +83,7 @@ Step 5 — 装兜底 hook(若 Step 2 没走 pre_inject_hooks)
inject_hook_preset("crypto", persistent=True)
hook_jsvmp_interpreter(script_url="[VMP basename]")
# 注意:本案例针对的是"通用"场景(含签名型和行为型)。如果目标是签名型反爬
# (瑞数/Akamai),不要这样用 hook_jsvmp_interpreter,改为:
# (RS/Akamai),不要这样用 hook_jsvmp_interpreter,改为:
# - instrument_jsvmp_source(mode="ast") (首选)
# - hook_jsvmp_interpreter(mode="transparent") (备选)
# 参考 SKILL.md "反爬类型识别与工具选择" 章节
@@ -196,8 +196,8 @@ function genSign(input) {
| 变体 | 差异点 | 调整策略 |
|------|-------|---------|
| 瑞数 5 | 固定 `sdenv-*.js` 命名 | url_pattern 用 `**/sdenv-*.js` |
| 瑞数 6 | 脚本名每次不同 + 多层 VMP | 先 `list_network_requests` 找所有 100KB+ JS,逐个 instrument(tag 区分) |
| RS 5 | 固定 `sdenv-*.js` 命名 | url_pattern 用 `**/sdenv-*.js` |
| RS 6 | 脚本名每次不同 + 多层 VMP | 先 `list_network_requests` 找所有 100KB+ JS,逐个 instrument(tag 区分) |
| Akamai sensor_data | `_abck` / `bm_sz` cookie | 重点看 `hot_keys` 中 touch/mouse 事件相关属性 |
| webmssdk(短视频平台) | 配合 msToken 预热 | 需先让 `/v1/generate_token` 预热接口完成再触发业务 |
| obfuscator.io(开源) | case 数可能只有 20-30 | `find_dispatch_loops(min_case_count=15)` |