实战:云手机多机并发
三台云手机同时抓包的完整实操。原理见 多机并发抓包。
环境检查
bash
# 三台容器都在跑
ssh 192.168.1.90 "docker ps --filter name=android --format '{{.Names}} {{.Ports}}'"
# android-001 0.0.0.0:5555->5555/tcp
# android-002 0.0.0.0:5556->5555/tcp
# android-003 0.0.0.0:5557->5555/tcp一次性配好三台
bash
# 1. adb connect 三台
for p in 5555 5556 5557; do adb connect 192.168.1.90:$p; done
# 2. 每台 adb root(frida-server 必须 root)
for p in 5555 5556 5557; do adb -s 192.168.1.90:$p root; done
sleep 3
# 3. 每台建 forward(映射到本机不同端口)
adb -s 192.168.1.90:5555 forward tcp:27042 tcp:27042
adb -s 192.168.1.90:5556 forward tcp:27043 tcp:27042
adb -s 192.168.1.90:5557 forward tcp:27044 tcp:27042
# 4. 每台启动 frida-server(如未启动)
for p in 5556 5557; do
adb -s 192.168.1.90:$p shell \
"nohup /data/local/tmp/frida-server -l 0.0.0.0:27042 >/data/local/tmp/frida.log 2>&1 &"
done
# 5. 每台启动 F-Droid,拿 PID
for p in 5555 5556 5557; do
adb -s 192.168.1.90:$p shell \
"am start -n org.fdroid.fdroid/.views.main.MainActivity"
done
sleep 8
for p in 5555 5556 5557; do
echo "$p: $(adb -s 192.168.1.90:$p shell pidof org.fdroid.fdroid | tr -d '\r')"
done三台并发抓包
bash
cd /home/cc11001100/github/android-security-engineer/r0capture-skills
# 假设拿到的 PID: 7033 / 2597 / 2547
python3 r0capture.py -H 127.0.0.1:27042 7033 --selftest -p a1.pcap > a1.log 2>&1 &
python3 r0capture.py -H 127.0.0.1:27043 2597 --selftest -p a2.pcap > a2.log 2>&1 &
python3 r0capture.py -H 127.0.0.1:27044 2547 --selftest -p a3.pcap > a3.log 2>&1 &
echo "三台并发抓包中..."
wait结果验证
bash
for n in 1 2 3; do
size=$(wc -c < a$n.pcap)
get=$(grep -c 'GET / HTTP' a$n.log)
ok=$(grep -c 'HTTP/1.1 200' a$n.log)
echo "android-00$n: pcap=${size}字节 GET=$get 200=$ok"
done期望输出:
android-001: pcap=2130字节 GET=1 200=1
android-002: pcap=7772字节 GET=1 200=1
android-003: pcap=7661字节 GET=1 200=1三台同时各抓到完整请求+响应,并发链路打通。
并发场景价值
故障排查速查
| 现象 | 原因 | 解决 |
|---|---|---|
No route to host | 新容器端口未就绪 | 等 10 秒重试 adb connect |
PermissionDeniedError | frida-server 非 root | adb root 后重启 frida-server |
unable to find process | App 没启动 | am start 启动 App |
| 三台都连同一设备 | 用了 -U | 改用 -H 127.0.0.1:2704N |
spawn InvocationTargetException | 新机器 spawn 不稳 | 改 attach 模式 |
| 0 包 | App 没联网 | 抓包中用 adb input 触发 |