reverse-skills-max: initial public release (restored, redacted, hardened)

This commit is contained in:
baradok609hecl1pq6qi
2026-10-20 02:17:15 +03:00
commit da24c2bd20
2227 changed files with 443931 additions and 0 deletions

View File

@@ -0,0 +1,176 @@
# 算法家族与站点模式
## 一、标准签名题
### 统一结构
```text
request params
-> normalize / stringify / sort
-> inject token / timestamp / cookie / ua
-> hash / encrypt
-> final sign
```
### 高频站点模式
#### 财联社
- 典型链:`query string -> SHA1 -> MD5`
- 真正难点:参数排序、URL 编码、query string 一致性
#### 百度翻译
- `token` 来自页面
- `sign` 来自前端函数
- 典型价值:页面态参数与 JS 纯算参数分离
#### 有道翻译
- 请求签名:`client + mysticTime + product + key -> MD5`
- 响应侧还存在固定 seed 派生的 `AES-CBC` 解密
- 典型价值:同题同时训练请求签名和响应解包
#### 淘宝 H5
- 典型链:`token&t&appKey&data -> MD5`
- 真正难点:token 提取、`t` 一致性、紧凑 JSON
## 二、混合加密题
### 统一结构
```text
明文
-> 对称加密
-> 对称加密或再次包装
-> 编码
-> params
随机 key
-> reverse / transform
-> RSA / SM2
-> encSecKey / signature
```
#### 网易云音乐
- 双层 AES-CBC + RSA
- 重点不是入口,而是“业务数据”和“密钥包装”分层
## 三、Cookie / Header / 多参数联动题
### Cookie 题
统一结构:
```text
环境采集
-> builder
-> hash / encrypt / encode
-> document.cookie 写入
```
最稳入口:
- Hook `document.cookie`
- 回栈看 builder
- 继续追环境采集层
#### 盼之 cookie
- 典型价值:从 cookie sink 反推 IIFE 和 builder
### 多参数联动题
#### 滴滴 `dd03 / dd05 / wsgsig`
- `dd03` 更偏纯算层
- `dd05` 更偏运行时或 webpack/VMP 层
- `wsgsig` 更像收口层
- 最稳打法:先拆组成件,再拆最终收口件
#### 某农网 `X-CLIENT-SIGN`
- 先盯最终缺的 header
- 再把真正返回它的混淆函数整段收缩
## 四、JSVMP / VMP 题
### 共同策略
1. 不从文件头正推。
2. 先找最终 writer 和最终返回值。
3. 先恢复中间数组 / 中间对象 / payload。
4. 再恢复最终编码层。
### 小红书 `X-s / X-t / X-S-Common`
- 第一入口是 `window._webmsxyw()`,不是最终 header 串。
- 必须把 `X-s` 和 `X-S-Common` 分开看。
- `X-S-Common` 体现的是 header 家族和环境/指纹字段联动。
- 高频中间结构:`x1 / x2 / x3 / x4 / payload`。
- 同站点多文章要分“入口定位”“AST 解混”“JSVMP 结构”“环境位串”“算法骨架”五种思路记录。
### 抖音 `a_bogus`
- 不要把它简化成 `SM3 + RC4 + Base64`。
- 真正难点是多段数组、状态推进、时间戳/随机数/UA/环境材料如何进入 96/128/136 位数组。
- 最该保存的检查点:双 SM3 输出、41 位浏览器数组、50 位主数组、96/128/136 位数组、最终 `a_bogus`。
### QQ 音 / Spiderdemo / 复杂 VMP
- 更适合当“标准题”和“超重型对抗题”之间的过渡训练。
- 优先练 webpack 入口定位、最终 writer 确认、协议/页面回填拆分。
## 五、Wasm / 协议题
### Wasm
优先顺序:
1. 找加载点
2. 找 Wasm URL
3. 看 `instance.exports`
4. 用固定输入验证输出
5. 再决定是否反编译
### Protobuf / WebSocket
- 先数包或先确认 message type
- 先拆协议线和页面线
- 不要一开始就把二进制题当“某个 sign 函数”
#### Spiderdemo T6
- 重点不是 sign,而是 protobuf + 页面占位回填
## 六、国密题
### SM3
- 经常作为最终签名层或中间摘要层出现
- 真正要对齐的是:原始明文、SM3 输入字节、SM3 输出、后续 builder 输入
### SM4
- 分析重点和 AES 类似:key、iv、模式、padding、编码层
### SM2
- 更适合作为“识别型知识”
- 先确认它是不是关键层,再决定是否优先迁移
## 七、最小落地接口
优先收敛成这类分层:
```text
build_context
-> build_raw_string / build_payload
-> crypto_or_vm_layer
-> validate_checkpoints
-> final_output
```
不要把所有逻辑塞进一个大函数里。