-f / --isSpawn:Spawn 模式
🚀 主动启动 App,从进程一创建就注入 hook。
作用
不开 -f 时是 Attach(附加到已运行进程);开 -f 后是 Spawn(从零启动)。
用法
bash
# Spawn:用包名启动 App
python3 r0capture.py -U -f com.coolapk.market -v
# Spawn + 导出 pcap
python3 r0capture.py -U -f com.coolapk.market -v -p out.pcap用包名
Spawn 模式传的是包名(com.coolapk.market),不是应用名。因为 spawn 是从零启动,此时 App 还没运行,没有"应用名"可查。
内部流程
对应代码:
python
if isSpawn:
pid = device.spawn([process])
time.sleep(1)
session = device.attach(pid)
time.sleep(1)
device.resume(pid)两次 sleep(1) 是给注入留时间窗口——spawn 出来的进程处于挂起态,必须先 attach + load 脚本,再 resume,才能保证 hook 在 App 第一行代码执行前就位。
Spawn 的优势
- ✅ 抓 App 启动期流量(如
Application.onCreate里的请求) - ✅ 客户端证书导出必须在 Spawn 模式(attach 太晚,证书可能已被取走)
Spawn 的劣势
- 启动早期 Frida 注入可能与加固的初始化竞争,偶发崩溃
- 比 attach 慢(要等两次 sleep)