feat(huya): doLaunch wire 离线还原 + GUID铸币复放器原型 (huya_launch_mint.py)
- JCE 规格: LiveLaunchReq{tId,tLiveUB,bSupportDomain}/LiveUserbase{eSource,eType,tUAEx}
LiveAppUAEx{sIMEI,sAPN,sNetType,sDeviceId,sMId}/UserId{lUid..sQIMEI}/LiveLaunchRsp{t0=sGuid}
(classes9/11 dex writeTo 精确还原)
- 信封: UniPacket, servant=launch (@WupServant), func=doLaunch, sBuffer key=_wup_data
- tools/huya_launch_mint.py: 请求构造 + 响应解析(sGuid_candidates 递归兜底) + self-test 回环 PASS
- 传输(hyns/KiwiServant)与响应形态留待 live 实测校准; 禁设备侧活动
This commit is contained in:
@@ -299,3 +299,21 @@ lib 内置大量模拟器检测串(qemu_pipe / mumuvmm / genymotion / windroye
|
||||
全链路用同一份虚拟 profile 保持一致性,铸币=整套身份模板随机化。
|
||||
- 真机/未决项:sGuid 签发是否依赖 qimei16/36、hdid/cdid/sdid 上报(采集器还是把设备信息上报
|
||||
给 dfpReport 侧),这些在 §六 的注册链实测中一并验证。
|
||||
|
||||
### 11.6 doLaunch wire 已离线还原(2026-08-29 续)
|
||||
- **JCE struct 规格**(dex writeTo 精确还原,全部位于 classes9/com/duowan/HUYA):
|
||||
- `LiveLaunchReq`:t0=tId(UserId) t1=tLiveUB(LiveUserbase) t2=bSupportDomain(int16)
|
||||
- `LiveUserbase`:t0=eSource(=2) t1=eType(=1) t2=tUAEx(LiveAppUAEx)
|
||||
- `LiveAppUAEx`:t1=sIMEI t2=sAPN t3=sNetType t4=sDeviceId t5=sMId
|
||||
- `UserId`(classes11):t0=lUid(int64) t1=sGuid t2=sToken t3=sHuYaUA t4=sCookie
|
||||
t5=iTokenType t6=sDeviceInfo t7=sQIMEI
|
||||
- `LiveLaunchRsp`:**t0=sGuid**(铸币目标) t1=iTime t2=vProxyList t3=eAccess t4=sClientIp
|
||||
- **信封**:UniPacket(同密码登录);servant=`launch`(`@WupServant("launch")`),func=`doLaunch`;
|
||||
sBuffer=map<string,bytes> 键 `_wup_data`;4B 大端长度前缀。
|
||||
- **工具 `tools/huya_launch_mint.py`**:build_live_launch_wup(profile)→请求字节、
|
||||
parse_launch_rsp(bytes)→候选 sGuid(递归解 SIMPLE_LIST 载荷)、`--self-test`(回环)/
|
||||
`--dump`/`--live [url]`。默认虚拟 profile 见 DEFAULT_PROFILE(mid 16hex、imei 15 位、
|
||||
device_id 32hex、guid=""→服务端签发)。
|
||||
- **传输待 live 实测确认**:hyns/KiwiServant(a09)栈的最终 URL/头(先按 wup.huya.com 平铺,
|
||||
与服务端对拍后再校准);响应 sBuffer 可能是 map<string,JceStruct> 假象(解析器已兼容
|
||||
bytes/struct 两种形态,sGuid_candidates 兜底)。
|
||||
|
||||
Reference in New Issue
Block a user