docs(huya): R23 双线状态固化 - ga表栈构建+onLoad空槽链 下一步三选项

This commit is contained in:
yml2213
2026-08-29 07:14:49 +08:00
parent c85693e790
commit 652b0bbd2c
+21
View File
@@ -1246,3 +1246,24 @@ dfpReport: tReq = [10B 魔数 57 18 82 cf 66 4b b3 94 01 ee][3988B 加密采
- onLoad 全仿真 = 类定义工程 (ProxyClassFactory) 或连续空槽 wack-a-mole — 小时级 - onLoad 全仿真 = 类定义工程 (ProxyClassFactory) 或连续空槽 wack-a-mole — 小时级
- 替代: 跳过 onLoad, 直接按 JNI 表构造 b87_@0x25c98 的 C 结构对象模型直调 - 替代: 跳过 onLoad, 直接按 JNI 表构造 b87_@0x25c98 的 C 结构对象模型直调
- 进展固化: gap补映射 + 预注册类 + 全局槽补丁 = 已进 TuringProbe.java 可复现 - 进展固化: gap补映射 + 预注册类 + 全局槽补丁 = 已进 TuringProbe.java 可复现
---
## §11.53 R23: ga 侧 JNI 解剖状态 + 双线进展固化 (2026-08-29)
### ga (turingga.so) JNI 面
- 方法名族: a209202_2A742FA224BA8A2A .. n209202_ (14个, 哈希=ga v2.92.2)
- JNI 字符串在 .rodata (vaddr 0x4bd7/0x4c4e/0x5164...); **注册表 = 非文件字面三元组**
(281 个 RELATIVE 重定位扫描 = 0 命中 -> 表为栈构建/运行时填充, 需 JNI_OnLoad 反汇编)
- ga JNI_OnLoad 符号存在 (symtab 隐藏), harness 调用崩溃: PC=0x31ec8, X0=1 (运行中-非空指针)
### 双线状态 (顺序第1步受阻, 已固化)
- 线1 (mfa onLoad): 引用计数关已过 (0x48a90 槽补丁); 后续空槽 wack-a-mole ~小时级
- 线2 (ga 表): 需 JNI_OnLoad 栈构建表反汇编 — 与线1 同深度
- 两线公用的更优路径: **运行中 RegisterNatives 捕获** (frida vite 已多路试, ART 内部符号未暴露 —
备选: ART JNIEnv vtable 正确索引再试 / halt_handler)
### 建议下一步 (下会话入口)
- A: mfa onLoad 空槽批量补丁 (0x48000-0x48a90 全槽扫描, 非零即赋 dummy) 冲过初始化
- B: ga JNI_OnLoad 反汇编解栈构建注册表 (RegisterNatives 调用参数恢复)
- C: 重置方向 — 解析已捕获 7 样本的 nonce/计数位规律 (零依赖纯分析)