yml2213
|
b76ec96573
|
feat(huya): R32 8密文集+三重钩全零调用定论+known-pair校准
- 8活体POST存 evidence (magic 10B@70 一致, 头同族7cda11)
- 25 JNI + 2 XTEA核 + 2 Java = 全0调用 (报告=隐藏native路径!)
- rtk_known/ 44B known pair (native ct 45542bb3...) 后续差分用
|
2026-08-29 09:01:51 +08:00 |
|
yml2213
|
5a138376ca
|
feat(huya): 💎 JAVA侧全逆! Cprivate XXTEA+会话密钥架构+Lyra TLV格式 (R30)
- Cprivate.java 加密/解密器全文 (XXTEA+MD5密钥变换+尾字长度)
- 密钥=SecureRandom 16字符[A-Za-z0-9] (guava.c内存明文! RSA封装上送)
- Lyra TLV: (type<<4)|tag, type 0-13 全表
- 捕获密文可用 Cprivate.a(data,会话key) 解密 - key在内存!
- 下一步: frida抓guava.c → 真key解密明文
|
2026-08-29 08:12:10 +08:00 |
|
yml2213
|
9586eaa8a3
|
feat(huya): 🎯 ga IDA导出核心挖掘: 密钥槽5788=3DF88同款! 全链XTEA/deflate/编码器映射 (R29)
- 5788=5788:f15e78d2… 与 mfa 3DF88 相同 (turing 共享key!)
- ga XTEA sub_1F1CC + 封套 1F918/1F9C8 + 解码 27DBC(inflate!)
- b209202 a6==0→sub_23DF8编码器 / a6==1→27FF8解码器
- k209202 16B块: RiskDetectExt.ExtData schema + key=16B输入
- 请求密文密钥≠静态key (需编码器内部路径)
|
2026-08-29 07:54:56 +08:00 |
|
yml2213
|
5b6edc02e8
|
feat(huya): 头结构破译(版本/会话ID)+密钥候选批量否定 (R28)
- 13B头=[2B魔数][1B版本01/11][7B会话ID(身份相关!)][3B动态]
- 20密钥候选全灭 (lencheck全False) - 派生含未知变换
- 加密链底座已验证; 密钥派生=ga内部需IDA导出
|
2026-08-29 07:49:52 +08:00 |
|
yml2213
|
0ef95a5c0e
|
feat(huya): 🎯 完整加密链 deflate+XTEA 闭环验证成功 (R27)
- sub_2E164=deflate+sub_25234=XTEA封套 (pad+4Blen+24D58加密) 源链闭环
- harness: Java-deflate+真25234 产出52B密文
- 关键坑: GOT RELRO只读页 mprotect后导入补丁才生效 (所有-1的真相!)
- 捕获=[13B头][XTEA-wrap(key=设备派生)]; 密钥推导=下一步
|
2026-08-29 07:48:05 +08:00 |
|
yml2213
|
51962b8bf2
|
feat(huya): ga k209202=16B块加密器+状态门打通 (R26)
- k209202 反汇编: len==16严格校验 + 0x24334状态化块加密核心
- mfa 0x48C18=单例字段 补非零后 b87_全链LIVE (XXTEA+inflate执行!)
- 定论: 捕获密文密钥=设备材料派生(非静态), 传输链静态解=需ga IDA导出
- 下一步: 用户导 turingga.so / 或抓服务器 resp 旁路
|
2026-08-29 07:45:51 +08:00 |
|
yml2213
|
a5df6df855
|
feat(huya): ✅ XXTEA变体加密侧回环验证+ga全表14方法 (R25.5)
- sub_24D58 正参数=加密/负参数=解密, 44B回环100%还原, key@3DF88确认
- ga JNI表14方法全解 (j209202=取DID! k209202=传输加密入口@0x219d8)
- 判断: 捕获密文=ga传输层 (非mfa内部序列化), 需ga IDA导出或运行时状态
|
2026-08-29 07:42:56 +08:00 |
|
yml2213
|
44948277d4
|
feat(huya): 💥 XXTEA变体识别+harness直调sub_24D58运行成功 (R25)
- mfa JNI表11方法全解 + b87_解包链语义 (XXTEA+inflate+'resp')
- sub_24D58=XXTEA变体 (0x9E3779B9+掩码混淆) 反编译+harness直调验证
- harness: 导入补丁115/构建器语义构建/日志桩/双后端
- 下一步: key槽验证+b87_全链直调+a87_加密侧
|
2026-08-29 07:34:23 +08:00 |
|
yml2213
|
c85693e790
|
feat(huya): harness onLoad迭代修复 - 全局槽补丁过引用计数关 (R22)
- 0x48a90槽NULL崩溃 -> dummy对象补丁 -> 推进到vtable空跳
- 根因: turing类定义缺失(需ProxyClassFactory或C结构对象模型)
- TuringProbe.java: gap+类+槽三级补丁可复现
|
2026-08-29 07:13:22 +08:00 |
|
yml2213
|
47bc38d638
|
test(huya): b87_ harness直调执行通过(ret=-1=初始化态缺失) (R21补)
|
2026-08-29 07:07:59 +08:00 |
|
yml2213
|
dc109c5dba
|
feat(huya): turing JNI表解出+b87_@0x25c98 (R21)
- libturingmfa JNI 表: b87_(SparseArray,[B,Map,I)impl@0x25c98 + f87_ — 加密核心入口
- ELF 间隙洞察: LOAD-2 vaddr未4K对齐->unidbg映射崩因; mmap2补映射过导出
- TuringProbe.java: 装库+预注册类+gap补映射+直调框架(封送待办)
- 路线: 直调b87_喂真实blob->SparseArray明文; ga侧JNI表同法
|
2026-08-29 07:07:18 +08:00 |
|
yml2213
|
cc00915e7f
|
feat(huya): 🏆 appSign(t1.t0)算法完全破解 — ed0db8逐字节复现 (R15)
公式: appSign = MD5(appId + '_' + appVersion + '_' + k1)
金样本: MD5('5008_13.4.22_865a4924a40897ac1fcfe6b4c2cbb0e3') = ed0db8334cadd236c00cadf7e11ab5a5 ✅
发现链路: createWupProtoInfo@0x273f1c反汇编 -> HuyaMd5(全局单例3串@0x484000+0xe0) -> frida实机读串(5008/13.4.22/k1) -> toString直出ed0db8 -> python标准md5复现
- 修改: hook_otp_capture.js(+appsign/huya-md5 hook, SSO/LONG修正, tostr-hex/ctor-hex)
- docs §11.45: 完整公式+发现链路+结构性解释+工程意义
|
2026-08-29 05:45:05 +08:00 |
|
yml2213
|
3abded94eb
|
feat(huya): 登录路径OTP全链LIVE验证 + appSign≠getOtp结构性证伪 (R14)
- 决定性捕获(hook_huya_crypto.js全链): xxtea密钥=账号稳定uid(1199666914671)
getkey(1,2)=MKDK/1,3=nskdI7, md5输入=k1+getkey, AES明文=[02][0c00][12B xxtea][7200][114B cred] 逐字节验证
- frida入口arg0读""为误读(SSO读取bug), 内部xxtea钩子为真值
- GOLD模式(正确uid)346k+J2 6.2M+I 6.3M+H 1.39M 全零 -> ~14.3M差分终态
- 结构性证明: appSign跨账号稳定 vs getOtp账号级(cred轮换) -> t1.t0≠OTP-mid QED
- 更正旧文档: in=uid非空串; 登录可带frida; 金样本uid=1199666914671
- 下一步: createWupRequestData@0x38dab0 appSign填充点反汇编
|
2026-08-29 05:35:34 +08:00 |
|
yml2213
|
128a57cbf3
|
feat(huya): OTP真机逐字节复现 + resinfo解密 + 登录路径六元组live捕获 (R13)
- GoldSweep: V2(真机146B复现292/292hex一致)/H/H2/I/J/J2差分模式
修复mid提取窗口bug(out[4:36]→out[2:34], 旧扫描作废)
- 实机捕获(tools/frida两阶段注入): 登录路径OTP六元组 in="" s3="" s4=k1 s5=cred nonce=st<<16 + getHdid=DEVID40实锤
- resinfo解密: 密钥HuyaUdb1928374650qwertyuiop[:16] AES-ECB, 含channelKey/huyaDeviceId(40hex)/safedeviceid
- HyDeviceId: b(100)真GUID修复 + Unicorn2后端 + init补桩全通
- docs §11.43: R13全量记录(差分统计/resinfo/getter定案/frida结论)
- evidence/live_device: 真机持久化文件存档
|
2026-08-29 05:15:57 +08:00 |
|
yml2213
|
4c7f27468a
|
feature(huya): nonce算法破解(nonce=counter|serviceTime<<16)+直调逐字节复现getOtp内部 - 差分靶向化
|
2026-08-29 03:04:58 +08:00 |
|
yml2213
|
4d1d959c8a
|
diag(huya): nonce影响mid修正 + 内部差异定位(s5槽junk/状态)
|
2026-08-29 02:55:38 +08:00 |
|
yml2213
|
d4f4e82593
|
diag(huya): R12 s5长度族23K零命中 - 累计53K差分零, s3/s4真源待注入
|
2026-08-29 02:53:54 +08:00 |
|
yml2213
|
23c8b13d01
|
diag(huya): 30K组合爆破零命中 - 差分引擎就绪
|
2026-08-29 02:49:48 +08:00 |
|
yml2213
|
dd883c02d8
|
feat(huya): OTP-OUT内容捕获成功!结构=[04][cnt][16B mid][16B tail] - 差分闭环就绪
|
2026-08-29 02:48:48 +08:00 |
|
yml2213
|
d714249e24
|
diag(huya): 实例注入实验 - config非AES + s4拷贝段新unmapped(SSO布局细节)
|
2026-08-29 02:45:28 +08:00 |
|
yml2213
|
d46654438f
|
feat(huya): getOtp全流程执行成功!OTP调用实弹+参数读取 - 根因=BusinessCfg实例配置字段空
|
2026-08-29 02:42:18 +08:00 |
|
yml2213
|
76de9c3e39
|
diag(huya): getOtp流程死点=to_string@0x4543c0(serviceTime=0) - OTP调用差最后一步
|
2026-08-29 02:34:55 +08:00 |
|
yml2213
|
b60c7b78d1
|
feat(huya): C2新钥表8x24B发现 + AppLoginData真布局(流程穿透2691c0) + 全爆破零命中定界
|
2026-08-29 02:34:01 +08:00 |
|
yml2213
|
702c6276fc
|
feat(huya): hook突破(getOtp入口命中) + 275d0ff6排除(pre存在) + 结构校验判定点定位
|
2026-08-29 02:27:47 +08:00 |
|
yml2213
|
f121f41f61
|
feat(huya): getOtp直调全通(C2初始化+AppLoginData伪造) - OTP真布局定案+堆32hex新候选
|
2026-08-29 02:25:21 +08:00 |
|
yml2213
|
0185296089
|
feat(huya): 真实getOtp语义全解(serviceTime+计数器+AppLoginData字段) - 直调路线就绪
|
2026-08-29 02:17:12 +08:00 |
|
yml2213
|
6bde9beec2
|
feat(huya): getSDID新值族(36B base64常量证书) + A路径实验定界(APK可载Java不可调) + LoginFlow桥接harness
|
2026-08-29 02:10:57 +08:00 |
|
yml2213
|
c426574b3c
|
feat(huya): harness复活(getGUID回0a7dfa) + GUID缓存输入透明性证明(b(100)直填) + merged_r2产物
|
2026-08-29 01:37:18 +08:00 |
|
yml2213
|
65a284eac5
|
feat(huya): config112B全钥直解=垃圾 + appSign未知收敛表 + 三候选方向定档
|
2026-08-29 01:32:03 +08:00 |
|
yml2213
|
26dc74a661
|
feat(huya): decode全11钥=全二进制垃圾 - appSign钥∉已知目录, 方向修正(找hdid真生产方)
|
2026-08-29 01:29:23 +08:00 |
|
yml2213
|
1dd67a36d7
|
feat(huya): OTP内部串池取证 - MsgRegSendSms协议标签现形(登录/注册请求加密器)+双钥相邻
|
2026-08-29 01:23:52 +08:00 |
|
yml2213
|
a8aebfed40
|
feat(huya): getkey=裸24B钥(堆节点取证推翻派生假设) + 明文族爆破零命中落档
- Unicorn2后端+全内存扫描: 0x127d* 堆节点含 ZMHAV/4VYc/xXED 裸钥 + 输入副本
- 下一步: OTP insert-pos 差分(内部副本) + hydeviceid_config 88B 解码路径
|
2026-08-29 01:18:53 +08:00 |
|
yml2213
|
b2bf747e7a
|
docs(huya): 终局总结 - 3账号×2路径验收矩阵 + 达成/边界如实 + 落地模式与未来路线
- 铸币GUID32恒APP_SIGN / 金样本HDID32签名通过进风控(3账号全一致)
- encode_aes复刻15/15位精确; HDID32独立铸造={getkey派生钥,明文}未达
- 落地: 每账号独立{GUID32,ACTION,DEVID40}+共享HDID32 → cred; 关联代价明示
- docs/HUYA_铸币机-终局总结.md
|
2026-08-29 00:50:13 +08:00 |
|
yml2213
|
1afbd588a7
|
feat(huya): 复刻15/15全量实证 + DiffProbe上线 + C向量更正(ae26d0)
- 8组随机明文×随机钥逐字节命中 → 算法零残差
- appSign唯一未知: 钥=getkey双id派生材料(非裸24B)
|
2026-08-29 00:45:03 +08:00 |
|
yml2213
|
fda956beca
|
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直解明文
|
2026-08-29 00:37:56 +08:00 |
|
yml2213
|
71e28f3406
|
feat(huya): OTP中段公式实证 md5_char16(input∥getkey(1)派生) - 差分表+静态流落档
|
2026-08-29 00:15:53 +08:00 |
|
yml2213
|
c2b9954214
|
feat(huya): OTP差分定性 - 32hex尾=静态钥材料计算(非嵌入) + 中段=f(输入)
|
2026-08-29 00:13:02 +08:00 |
|
yml2213
|
92eb39cd9d
|
feat(huya): OTP击穿 - arg语义(arg1=2) + 输出结构(0x03+可变+固定32hex尾8b38f1) - 32hex形态实锤
|
2026-08-29 00:11:52 +08:00 |
|
yml2213
|
ebdbd05217
|
feat(huya): md5_char16=MD5-hex中段16识别(非32hex本体) + 探针全家桶(encode_aes/md5/xxtea/otp可调)
|
2026-08-29 00:10:41 +08:00 |
|
yml2213
|
7249dd6909
|
feat(huya): unidbg encode_aes 探针上线 + 64B钥材料发现(AES变体非标)
- AesProbe.java: 直接调用 encode_aes, 权威差分源 (已知输入输出已记录)
- KeyExpansion 以16B步长读钥 → 64B材料; 标准AES对照 b1e3abcc≠ba3fb8f1 证变体
- docs §11.16
|
2026-08-29 00:01:00 +08:00 |
|
yml2213
|
e5aee00a9c
|
feat(huya): jadx映射HDID32 Java链(NativeEntry.getHDID@0x20f0c8) + b()全语义表 + 签名锚定实验(仅HDID32锚,DEVID40自由)
- b(1)=5008/b(2)=ver/b(3)=1.14.68/b(107/108)=qimei → unidbg 桩补全
- 实验: 金样本hdid+随机DEVID40=1571B cred / 换hdid恒APP_SIGN
- docs §11.12
|
2026-08-28 23:27:36 +08:00 |
|
yml2213
|
27c71a3ad2
|
feat(huya): hook阶段结论 - NativeBridge排除动态JNI与各库RN, 静态物证=内联描述符块; 双库unidbg打通; 设备稳定注意
- 排除: Java_导出扫描/各库dlopen JNI_OnLoad RN拦截/健康进程重触发RN = 全0命中
- unidbg verbose: hydeviceid仅FindClass+NewGlobalRef; udb仅注册HuyaAuthCore
- 物证: hydeviceid .data@0x3e21e4 内联方法描述符块(klog/b/c/g/h+getDataDir/getPath) + 类名字符串
- 双库: udb(JNI_OnLoad@0x262620)解密合并 unidbg 加载成功; merge 升级段驱动+动态保留+init_array置零+仅重定位槽清理
- 新输入: udb_deviceID/udb_deviceID_encode/oaid prefs + b(104) + Build.*字段
- 设备稳定: pm clear+frida attach 探测致闪退, 后续禁用; 无frida冷启动健康
- 静态还原重启点: isNative定讫 -> 注册函数(运行期建表模式) 或 Java逻辑; unidbg差分oracle + fnPtr兜底
|
2026-08-28 17:19:45 +08:00 |
|
yml2213
|
70621cff8f
|
feat(huya): unidbg 金测试打通 - 采集器加密可复现(androidId=PDSuHx..)/GUID=0a7dfa..一致
- 输入图定案: 库内零硬件文件读, 种子=ANDROID_ID+服务端hydeviceid_config+MID, 属性层无关(X1/X2)
- 真机全段解密 dump(phone_dump_hydev_full) + merge_decrypted 合入原文件 → unidbg 可直接加载
- unidbg(JDK21+patch) harness: JNI 桩(SharedPreferences日志化/Settings.Secure/NativeBridge)
金测试: androidId 加密态与 getGUID 全部与真机一致
- 遗留: NativeBridge.b(100) 原生归属库未定(非hydeviceid/udb/device-util), 当前桩替顶
- 修正结论: '单机不可铸造'判断错误, GUID=b(100)=f(androidId密, config, MID) 输入全可控
|
2026-08-28 16:06:25 +08:00 |
|