feat(huya): 🎯 完整加密链 deflate+XTEA 闭环验证成功 (R27)

- sub_2E164=deflate+sub_25234=XTEA封套 (pad+4Blen+24D58加密) 源链闭环
- harness: Java-deflate+真25234 产出52B密文
- 关键坑: GOT RELRO只读页 mprotect后导入补丁才生效 (所有-1的真相!)
- 捕获=[13B头][XTEA-wrap(key=设备派生)]; 密钥推导=下一步
This commit is contained in:
yml2213
2026-08-29 07:48:05 +08:00
parent 51962b8bf2
commit 0ef95a5c0e
2 changed files with 130 additions and 0 deletions
+30
View File
@@ -1369,3 +1369,33 @@ m209202(SparseArray,Context,Map)@0x21bdc n209202(SparseArray,[B,I,String,J)@0x43
1. **用户导出 turingga.so 的 IDA decompile** (k209202 全家: 0x219d8/0x24334/0x19378/0x13eb8/0x1c640)
2. harness 继续: mfa 单例 34D68 全量 ctor (48BD8) + 各字段填充 → b87_ 对正确 resp 输入成功
3. 或 frida 捕获一次 **服务器 dfpConfig 响应** (b87_ 的 resp 输入 = 密钥推导的旁路!)
## §11.58 R27: 🎯 完整加密链验证 — deflate+XTEA 闭环出炉 (2026-08-29)
### 加密链全解 (mfa IDA 反编译闭环!)
- **sub_2E164 = 加密封装**: `deflate(a1, a2, &def, &dlen, 0xFFFFFFFF)` + `sub_25234(...)`
- **sub_25234 = XTEA 封套**:
```
v5 = len + 4*(len&3!=0) + 4 (对齐到4B + 长度字!)
calloc; memcpy; 尾字 = 明文长度!
sub_24D58(buf, +n, key@3DF88) (加密!)
```
- **解密对偶**: sub_252EC (XTEA-dec + 尾字长度校验) → sub_34A00 (inflate!)
- **链条**: 明文 → deflate(zlib) → [pad + 4B len] → XTEA-enc@3DF88 → 密文!
→ XTEA-dec → 尾字取长 → inflate → 明文 ✓
### harness 全链运行成功!
- Java-deflate 44B→47B (zlib) + **真 sub_25234 ret=1 密文 52B** (4012a3a8e4...)
- **GOT RELRO 坑找到: 导入槽在只读页!! — mprotect(0x45648,0x3440,7) 后补丁才真正写入**
(之前所有 -1/崩溃 = 未写成的 GOT 槽 br-0!)
- 修复顺序: load → gap-mmap → **mprotect RELRO→RWX** → patchImports → 调用!
- 52B 密文 = 48B (pad+XTEA 块) + 尾 4B 长度字段的所有权 = XTEA 加密涵盖
### 捕获密文格式确认
- **捕获 = [13B 请求头][XTEA-wrap(key=设备派生)]** — 13B 头 = 请求协议 (7c da/版本/nonce/uptime)
- 密钥 ≠ 静态 3DF88 (设备材料 mpdc/ga2/turing.dat 派生)
### 下一步 (密钥推导战)
1. 候选密钥批量解: mpdc-16B / ga2 / turing.dat / sha256(materials) / 13B-nonce
2. 13B 头语义解码 → nonce→key 关系 (R24 已证: 同 nonce 对 13B 头相同!)
3. ga k209202-16B 块 = 设备材料块加密器 (状态补全后 = 主密钥源!)