Skip to content

Frida Process API ​

🔄 Frida 操作目标进程的 API,r0capture 主机端通过 frida-python 间接用。

是什么 ​

Process 对象描述被注入的进程,提供模块列表、线程、架构等信息。在设备端 script.js 里可用。

常用方法 ​

方法用途
Process.enumerateModules()列出所有已加载 .so
Process.enumerateThreads()列出线程
Process.arch进程架构(arm64/arm/x64)
Process.pageSize内存页大小
Process.idPID

r0capture 的潜在用途 ​

javascript
// 调试时列出含 ssl 的模块
Process.enumerateModules()
    .filter(m => m.name.includes("ssl") || m.name.includes("conscrypt"))
    .forEach(m => console.log(m.name, m.base));

定位 SSL 函数所在模块时有用。

主机端等价 ​

主机端 frida-python 用 session/device API:

python
device = frida.get_usb_device()
session = device.attach(pid)        # 或 spawn
script = session.create_script(js_code)

这部分在 r0capture.py 的 __main__ 里。详见 主机端启动流程。

架构判断 ​

javascript
if (Process.arch === 'arm64') {
    // 用 arm64 的调用约定(x0-x7 传参)
}

r0capture 的 hook 代码用 args[0] 等抽象,Frida 自动适配架构,所以一般不需手写。

相关文档 ​

基于 VitePress 构建 · 教学用途