Frida Process API
🔄 Frida 操作目标进程的 API,r0capture 主机端通过 frida-python 间接用。
是什么
Process 对象描述被注入的进程,提供模块列表、线程、架构等信息。在设备端 script.js 里可用。
常用方法
| 方法 | 用途 |
|---|---|
Process.enumerateModules() | 列出所有已加载 .so |
Process.enumerateThreads() | 列出线程 |
Process.arch | 进程架构(arm64/arm/x64) |
Process.pageSize | 内存页大小 |
Process.id | PID |
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 自动适配架构,所以一般不需手写。