docs(huya): R1-R12会话交接总结 (机制全通+输入边界+差分引擎可用)

This commit is contained in:
yml2213
2026-08-29 03:07:58 +08:00
parent 4c7f27468a
commit 464384986d
+19
View File
@@ -888,3 +888,22 @@ hypasswordLogin/MsgLoginReq/LogLoginReq → mid 各异, tail 恒定 8b38f1 → a
### 验证完美: 直调 (in="0",cnt=1,s3=s4="hy_300023887",s5="",nonce=0x1a049befebf0000) = getOtp 内部 04c7537f 逐字节一致!!
### 差分靶向化 (5184 combos: ST×cnt×s3×s4) = 零命中
- 遗留: ①金样本真实 serviceTime (13位ms) ②s3/s4 真值 (BusinessCfg 登录数据)
## §11.42 【会话交接总结】R1-R12 全景 (新会话从这读起)
### 已铁证 (勿重做)
1. encode_aes 复刻 15/15 ✓ (tools/huya_aes_replica.py)
2. getkey = 裸 24B 钥; 双钥表 (11 已知 + C2 8×24B SHBfg族) × enc/dec/hash 全穷举 vs ed0db8 = 零
3. getOtp (BusinessCfg::getOtp(AppLoginData&)@0x26916c) 直调可执行:
- BusinessCfg::getInstance@0x281270 → instance; AppLoginData 真布局 (hyOpenId@0/userId@8/userIdState@0x20/emailMask@0x28)
- 269278 to_string@0x4543c0 = UC_ERR_READ_UNMAPPED → NOP 补丁 + hook 预写 [x29-0x58]
- OTP 调用点 0x269324 实弹: [04][cnt][16B mid][16B tail]; OUT@[sp] 读取法 (libc++ 长串 [0]cap [8]size [16]ptr)
4. **nonce 算法破解**: nonce_next@0x32ff10 = counter | (serviceTime << 16) (counter 按 serviceTime 变化清零)
5. **直调逐字节复现成功**: reproOtp(in,cnt,s3,s4,s5,nonce) = getOtp 内部完全一致 (验证值 04c7537f)
### 当前边界 (新会话主攻)
- appSign(ed0db8) = 金样本 (in=to_string(st), cnt, s3/s4=BusinessCfg 登录数据, s5, nonce=cnt|st<<16) 的 OTP-mid
- 未知输入: ①金样本 serviceTime (2024-08-24 手机时钟 ms, 禁 attach) ②s3/s4 真值 ③s5
- 差分引擎: 直调 ~500 calls/s; 天窗口 86M st × s3/s4 族 = 后台爆破可行
### 关键工具
- tools/unidbg/hydev/src/hydev/AesProbe.java (全能探针: callOtpReal/reproOtp/goldBurst2/seqOtp/hooks/NOP)
- 编译运行: cd tools/unidbg/hydev && CP=$(cat /tmp/unidbg_cp.txt):...+apk-parser... ; java -cp $CP:out hydev.AesProbe so/libudbauthunify_merged.so
- 金样本: account hy_300023887 / mid 1e8bdf7d4f7a01d3 / dev40 7c5387.../ sdid *hZrPb62... (36B)/ appSign ed0db8334cadd236c00cadf7e11ab5a5