feat(huya): harness onLoad迭代修复 - 全局槽补丁过引用计数关 (R22)
- 0x48a90槽NULL崩溃 -> dummy对象补丁 -> 推进到vtable空跳 - 根因: turing类定义缺失(需ProxyClassFactory或C结构对象模型) - TuringProbe.java: gap+类+槽三级补丁可复现
This commit is contained in:
@@ -1227,3 +1227,22 @@ dfpReport: tReq = [10B 魔数 57 18 82 cf 66 4b b3 94 01 ee][3988B 加密采
|
||||
- 三种输入 (全POST/cipher-only/magic+cipher) × int{0,1} = 全部确定性 **ret=-1**
|
||||
- 判定: jobject 封送通; -1 = turing 全局初始化态缺失 (config/dat 未载入) 或 SparseArray 内容格式不符
|
||||
- 下一步: (a) onLoad 初始化链修复后直调 (x0 原子问题先解), (b) 或喂 SparseArray 事件内容探格式
|
||||
|
||||
---
|
||||
|
||||
## §11.52 R22: harness onLoad 迭代修复进展 (2026-08-29)
|
||||
|
||||
### 崩因链逐级突破 (每补一个槽位推进一段)
|
||||
1. **0x48a90 全局槽 NULL → 引用计数崩溃** (0x12b6c ldxr x0):
|
||||
- onLoad 的 init 函数 0x11690 先读该槽 (adrp 0x48000 + ldr #0xa90) 再 refcount
|
||||
- 真机上该槽在 init 链前序已赋值; harness 中静默为空
|
||||
- **补丁: 塞 8B dummy 对象指针 → 过此关!**
|
||||
2. 新崩溃: BR-x8 空跳 (X8=0x0, PC=0x0), X0=X1=0x1203ced5 (rodata 字符串)
|
||||
- 变体函数指针表空槽 / C++ 虚表未建 / PLT 未解析
|
||||
3. 根因深化: turing 类定义 (字段/方法) 缺失 — 预注册的空类无法支撑 JNI 静态字段链
|
||||
- unidbg VM 无 dex 加载 (仅 setDvmClassFactory/ProxyClassFactory 宿主代理)
|
||||
|
||||
### 状态判定
|
||||
- onLoad 全仿真 = 类定义工程 (ProxyClassFactory) 或连续空槽 wack-a-mole — 小时级
|
||||
- 替代: 跳过 onLoad, 直接按 JNI 表构造 b87_@0x25c98 的 C 结构对象模型直调
|
||||
- 进展固化: gap补映射 + 预注册类 + 全局槽补丁 = 已进 TuringProbe.java 可复现
|
||||
|
||||
Reference in New Issue
Block a user