feat(huya): 💥 XXTEA变体识别+harness直调sub_24D58运行成功 (R25)

- mfa JNI表11方法全解 + b87_解包链语义 (XXTEA+inflate+'resp')
- sub_24D58=XXTEA变体 (0x9E3779B9+掩码混淆) 反编译+harness直调验证
- harness: 导入补丁115/构建器语义构建/日志桩/双后端
- 下一步: key槽验证+b87_全链直调+a87_加密侧
This commit is contained in:
yml2213
2026-08-29 07:34:23 +08:00
parent 276a7782a0
commit 44948277d4
2 changed files with 143 additions and 12 deletions
+28
View File
@@ -1285,3 +1285,31 @@ dfpReport: tReq = [10B 魔数 57 18 82 cf 66 4b b3 94 01 ee][3988B 加密采
- **纯样本分析无法破** (无密钥派生链); 密钥源 = getDfpConfig 81B 服务端下发镜钥 + 设备材料
- 破解必须回到加密内核: A (harness onLoad 空槽冲关) / B (ga JNI_OnLoad 注册表反汇编)
- 已获价值: 报告时刻可判定 (头 byte6-7 ≈ uptime-ms), 版本/重注册模式可区分
---
## §11.55 R25: 💥 加密器识别 — turing mfa XXTEA 变体 + harness 直调运行 (2026-08-29)
### 关键突破 (IDA 导出 + unidbg 双线合流)
1. **JNI 表全解 (11 方法)**: a87_@0x25680 b87_@0x25c98 c87_@0x262a8 d87_@0x26418 e87_@0x26768
f87_@0x26edc g87_@0x271d0 h87_@0x274c0 i87_@0x276d0 j87_@0x27a78 k87_@0x27b74
(+ onServiceConnected@0x37324) — 类 TNative$aa (com/tencent/turingface/sdk/mfa)
2. **b87_ 语义**: JNI 分发壳 (a6==1 → sub_2E4A4!) — **sub_2E4A4 = 解包链**:
sub_2E250 { sub_252EC [拷贝 + **sub_24D58 = XXTEA变体解密** + 尾4B长度校验] + sub_34A00 [inflate!] }
-> "resp" 存 SparseArray — **输入 = [XOR/XXTEA密文][4B len] → inflate → 明文!!**
3. **sub_24D58 反编译 = XXTEA 变体**: 负长度参数 + 0x9E3779B9(2B16!) + 掩码混淆运算
(constant: 6CC17688/933E8977/D3115A55/5613AC09/A9EC53F6/B13795CC/4EC86A33/73067D6A/8CF98295)
key索引 = (sum>>2&3 变体) — 自定义变体非标准XXTEA
4. **harness 直调 sub_24D58 成功**: (v-ptr, -n, key@3DF88) — n=977/976/978 全量运行无崩!
输出非zlib — key槽或输入格式待定
### harness 进展
- 导入补丁 115/121 解析 (ASensor 族缺 libandroid)
- 0x48A90/0x48A98 构建器全局按语义手工构建 (rc@0 len@8 data@16!)
- 日志链桩 (11890/11928/3e80/3f70 = mov-w0-#0;ret)
- Unicorn2 = ldxr 原子缺陷; Dynarmic = 过 init 到注册段 (JNI-Env 回调 abort); 三后端均可跑纯函数
### 下一步 (解密侧续攻)
- key 槽验证: 3DF88 结构内偏移 / 或 key 由 config 派生
- b87_ 全链 harness 直调 (喂真实捕获密文 → inflate → 明文!)
- a87_@0x25680 = 加密侧 (sub_27DA4 链) — "纯代码铸造" 的核心