Skip to content

ART 与 Dalvik ​

🎨 Android 的 Java 虚拟机,r0capture Java hook 的运行环境。

演进 ​

代VM特点
早期Dalvik解释执行/ JIT
5.0+ART (Android Runtime)AOT + JIT 混合

对 Frida Java hook 的影响 ​

ART 把 Java 方法编译成 native 代码(AOT)或解释执行。Frida 的 Java.use + implementation = ... 通过 ART 内部接口替换方法入口,对 AOT 和解释执行都生效。

r0capture 的依赖 ​

  • Java.perform 需要 ART VM 已初始化
  • Java.use 通过 ART 的 class loader 找类
  • 方法替换走 ART 的 method entrypoint 改写

ART 与 native hook 的边界 ​

维度Java 方法 (ART)Native 函数 (.so)
hook 工具Java.useInterceptor.attach
r0capture 用socket/keystore/conscryptSSL_read/write
失败现象类找不到/方法不存在符号找不到

版本差异 ​

不同 Android 版本 ART 实现不同,导致:

  • 类名不同(如 socket 流类名各版本变化)
  • 需多版本兼容(r0capture script.js 处理多个候选类名)

相关文档 ​

基于 VitePress 构建 · 教学用途