feat(huya): 里程碑 - UdbAESUtil纯Python复刻成功(A/B/D三向量逐字节) + 登录帧t1=ProtoInfo(appSign槽=HDID32)

- tools/huya_aes_replica.py 617行逐指令复刻, AES-128变异(64B钥材用[0:16]+列链式扩展+移位吸收)
- 结构定案: t1 = {0:appSign=ed0db8! 1:appVer 2:sdkVer 3:lcid 4:clientIp 5:channel 6:countryCode}
- APP_SIGN错误名=appSign字段校验失败; 下步InvCipher直解明文
This commit is contained in:
yml2213
2026-08-29 00:37:56 +08:00
parent 71e28f3406
commit fda956beca
4 changed files with 802 additions and 0 deletions
+27
View File
@@ -684,3 +684,30 @@ UdbAESUtilC1(…) + encrypt ← 后段
### 下轮
1. 探针直接调 AESkeyMgr::getkey(1,…) 取派生钥 → md5_char16 合成验证
2. 子代理 AES 复刻 (运行中)
## §11.21 里程碑: UdbAESUtil 纯 Python 复刻成功 + t1=ProtoInfo(appSign=HDID32) 对应 (2026-08-28 夜)
### 1) tools/huya_aes_replica.py (617 行, 逐指令复刻, 子代理产出)
- 5 段内嵌 objdump 原文逐条比对一致; **A/B/D 三向量逐字节命中**:
enc("0123456789abcdef", ZMHAV-24B) = ba3fb8f156b03a9d7db185d1254e0730 ✓
enc("0123456789abcdef", 64B-0123…) = 72727e881edcfd0100a718687909b565 ✓
enc("0123456789abcdef", owNMia-24B) = 74bd517c7e5d2bbce63c8e98a192c760 ✓
- **算法 = AES-128 变异**: 64B 钥材只用 key[0..15] (转置装载 rk[i]=key[4*(i%4)+i//4]);
扩展 10 轮×16B=176B (AES-128 形); SubWord 输入=相邻列末字节 + 链式 XOR (非标准词独立);
无独立 ShiftRows (位移吸收进寄存器置换共轭); SBOX/RCON/INV = 标准表。
### 2) 登录帧 t1 结构 = mobilequicklogin.ProtoInfo (结构级定案!)
| t1.tag | 字段 | 金样本值 |
|---|---|---|
| 0 | **appSign** | **ed0db8334cadd236c00cadf7e11ab5a5 (HDID32!!)** |
| 1 | appVer | 13.4.22 |
| 2 | sdkVer | 1.0.80138 |
| 3 | lcid | "" |
| 4 | clientIp | 127.0.0.1 |
| 5 | channel | xiaomi |
| 6 | countryCode | "" |
- **"APP_SIGN" 错误名 = 字段名 appSign 的校验失败** — 32hex-HDID32 = appSign 值 = 签名函数产物!
### 3) 下一关: appSign (ed0db8) 的生成式
- ed0db8 = encode_aes(16B-plaintext, key) 形态候选; 朴素明文组合 (aid/mid/DEVID40…异或/拼/零垫) 零命中
- 下步: (a) 补 InvCipher 解密路径 → 直解 ed0db8 见明文; (b) 探针 encode_aes(设备材料块) 差分对拍