定位并实现设备注册链: wsapi.huya.com getDfpConfig->selectOperator->dfpReport
- 纯Python直连三接口(无登录门槛), 重放与真机HAR一致
- 实测: dfpReport响应 t5=登录帧device_id, t2=登录帧safedeviceid(服务端签发)
- 注册链新action+t5登录 -> cred✅; t1非hdid(硬错); 改selectOperator指纹不触发重注册
- 设备身份锚=dfpReport加密体(10B魔数+加密采集数据), 生成算法未破解
- hdid=libhydeviceid.so native setDeviceInfo上报, 不走HTTP, 不可铸造
- tools/huya_device_register.py + evidence/dfp_chain_golden.json
This commit is contained in:
@@ -544,3 +544,41 @@ WUP 帧 {hdid, fingerprint, device_id, safedeviceid} 建设备池, 账号轮换
|
||||
**附带发现**: df/collect 响应含 40hex hdid 字段(与 sdid 同返), 已让
|
||||
`core/huya/device_fingerprint.get_huya_sdid` 一并返回 (runner.js 输出
|
||||
`__HDID__` 行); 它与 WUP 的 32hex hdid 非同一体系, 不能互用。
|
||||
|
||||
### 追问2: 注册上报接口到底在哪? (2026-08-26 实测闭环)
|
||||
|
||||
用户疑问: "真机可以(注册设备), 为啥代码不能根据逻辑生成上报注册? 肯定是少了
|
||||
什么注册上报接口吧" —— **接口一直存在且已能纯 Python 直连, 之前只是没实现**:
|
||||
|
||||
**注册链 (servant=huyaudbwebui, 全部 POST wsapi.huya.com, TAF/WUP 信封, 无登录门槛)**:
|
||||
```
|
||||
getDfpConfig (67B 请求) -> 响应 80B 配置 (前64+后16, 疑似 AES key/IV 材料)
|
||||
selectOperator(419B 请求) -> 响应运营商索引 1 (请求含 40hex 设备指纹上报)
|
||||
dfpReport (3988B 请求) -> 响应下发设备身份三件套:
|
||||
t1 = 865a4924a40897ac1fcfe6b4c2cbb045 32hex 设备指纹(稳定)
|
||||
t2 = PQwemAN9... 180B base64 = 登录帧 safedeviceid (每次新签发)
|
||||
t5 = 7c5387e0539c023c31c4ff0e807e7256117385ee 40hex = 登录帧 device_id
|
||||
```
|
||||
|
||||
**实测结论 (全部纯 Python 直连验证)**:
|
||||
1. 三接口重放均 HTTP 200, 响应与真机 HAR 一致。
|
||||
2. **dfpReport 响应 t5 == 登录帧 device_id; t2 == 登录帧 safedeviceid** ——
|
||||
注册链响应就是登录帧设备字段的签发源。
|
||||
3. **用注册链新签发的 action(t2) + t5 登录 → 直接出 cred ✅** (工具已含此路径)。
|
||||
4. t1(32hex) 不是登录帧 hdid: 作 hdid 登录 → APP_SIGN_NOT_MATCH 硬错。
|
||||
5. **设备身份绑定在 dfpReport 请求的加密体(10B魔数 571882cf664bb39401ee +
|
||||
加密采集数据)上**: selectOperator 里改 fingerprint/机型不影响 t1/t5 →
|
||||
不触发重新注册。加密体生成算法未破解 (逆向笔记 待破解#2), 因此目前
|
||||
只能"重放真机加密体" -> 拿到的设备身份永远等于抓包那台真机。
|
||||
6. hdid 由 libhydeviceid.so 本地生成并经 native setDeviceInfo(msgType
|
||||
0xb000021) 上报, **不走 HTTP (全部 HAR 无此帧)** -> 纯代码无法铸造新 hdid。
|
||||
|
||||
**因此完整答案**:
|
||||
- "注册上报接口" = wsapi.huya.com 三连 (getDfpConfig->selectOperator->dfpReport),
|
||||
已实现 tools/huya_device_register.py (证据: evidence/dfp_chain_golden.json)。
|
||||
- 但**全新设备铸造**缺两环: ① dfpReport 加密体生成算法 (未破解, 决定设备身份);
|
||||
② hdid 的 native 注册通道 (setDeviceInfo, 无 HTTP 等价)。这两环不解决,
|
||||
纯代码只能"以真机加密体身份"登录 (device_id/safedeviceid 服务端签发,
|
||||
每账号可用新 action), 做不到"每账号一台全新设备"。
|
||||
- 每账号隔离现状 (已实测): fingerprint/device_id/机型随机 + 共用金样本 hdid
|
||||
+ 注册链新鲜 action -> cred/cookie 全通。
|
||||
|
||||
Reference in New Issue
Block a user