feat(huya): 铸币机打通 - doLaunch tReq 结构bug修复(缺外层struct_begin)+双雨确定性实证(sGuid=f(mid))
- encode_live_launch_req: 双层 struct_begin(0)+struct_end 收尾 (服务器tag0 tId 期望STRUCT) - build 只发 tReq 单键 (对齐真机 launch 帧, 不再追加 platform/version 等) - parse_launch_rsp: gzip 解压 + \x06\x20(32hex) sGuid 可靠提取 - live 矩阵实证: 同指纹同 sGuid / 变异指纹新 sGuid / device_id 不驱动, mid 驱动 - docs §11.8: 破案链 + 实证表 + 铸币闭环 (mid→doLaunch→sGuid→登录链)
This commit is contained in:
@@ -350,3 +350,34 @@ lib 内置大量模拟器检测串(qemu_pipe / mumuvmm / genymotion / windroye
|
||||
- 前置条件不变:**live 复测前先落 docs §11.5 步骤 1 的确定性实验设计**(同一虚拟指纹
|
||||
多次请求 → sGuid 是否一致 / 是否 = f(字段))。若 sGuid 随机签发,则铸币=整套身份模板
|
||||
随机化后由登录链验证服务端接受度。
|
||||
|
||||
## §11.8 铸币机打通:doLaunch 结构 bug 定案 + 服务端确定性签发 (2026-08-28)
|
||||
|
||||
### 破案链
|
||||
1. **真机全通道对拍**:多轮被动抓包/WG 全解密/Frida SSL 明文 — wup.huya.com 之外的
|
||||
launch servant 真帧 (queryHttpDns) = **map 只有 tReq 一个键**,值 = JCE struct:
|
||||
`0a`(struct_begin tag0) + 字段…… (非此前追加多键 + 0x0c 包装)。
|
||||
2. **tReq 恒拒根因**:`encode_live_launch_req` 少写外层 struct_begin(0) — UserId 结构体
|
||||
被直接顶到顶层,服务器解析 LiveLaunchReq 时 tag0(tId) 读到 UserId 内部 lUid 的
|
||||
ZERO_TAG(0x0c=type12) → 恒定错误 `read 'struct' type mismatch, tag: 0, get type: 12`。
|
||||
3. 修复 = 双层 struct_begin(0) + 收尾 struct_end() + map 只留 tReq 键。
|
||||
|
||||
### live 实证 (POST https://wup.huya.com 根路径)
|
||||
| 指纹 | sGuid (tRsp.tag0, 32hex) | 确定性 |
|
||||
|---|---|---|
|
||||
| 默认 (mid=1e8bdf7d4f7a01d3, device_id=f2f6…) | `0a7dfaa882938a6ab502511452142c57` | 多次同值 ✓ |
|
||||
| mid=9c41d0a7b3e5f281 (+device_id 换) | `0a7dd9dc1190916aba02dcf4ddf45b78` | 两次同值 ✓ |
|
||||
| mid=31415f26a7c8b9d0, imei=861234… | `0a7d90756f90916a9e023aa03ba0e901` | 两次同值 ✓ |
|
||||
| 仅 device_id 变 (mid 不变) | = 默认值 | device_id 不驱动 |
|
||||
|
||||
**结论:sGuid = f(mid)** —— 服务端对同一 mid 确定性签发同一 sGuid;mid 一换 sGuid 即变。
|
||||
mid = LiveUserbase→tUAEx→t5=sMId (16hex),**可任意铸造** → doLaunch 收 sGuid →
|
||||
登录帧 UserId.tag0=32hex hdid 用的就是该 sGuid。§11 旧结论"GUID 唯一不可铸造"正式推翻;
|
||||
**纯算法铸币闭环 = mid(铸) → doLaunch → sGuid → 登录链**。
|
||||
|
||||
### 工具落地
|
||||
`tools/huya_launch_mint.py`:
|
||||
- `encode_live_launch_req` 外层 struct_begin/end 修复;
|
||||
- build 只发 tReq 单键 (对齐真机帧);
|
||||
- `parse_launch_rsp` 支持 gzip + `\x06\x20(32hex)` sGuid 可靠提取;
|
||||
- `--live` 一条命令出 sGuid; 确定性矩阵可复现。
|
||||
|
||||
Reference in New Issue
Block a user