找不到 SSL 符号
❌
Could not find *libssl*!SSL_read异常。
症状
Error: Could not find *libssl*!SSL_readinitializeGlobals 用 ApiResolver 枚举 *libssl*!SSL_read 等,零匹配且不是 SSL_get_fd,直接抛异常。
原因
| 原因 | 说明 |
|---|---|
| SSL 库名不匹配 | ROM/加固把 libssl 改名 |
| App 用自带 SSL | Cronet/Flutter 静态链接 BoringSSL |
| 设备非 Android | Process.platform 分支选错库 |
排查
1. 看设备上有哪些 SSL 库
bash
adb shell "su -c 'find /system/lib* -name \"*ssl*\"'"
# 看实际的 .so 名2. 用 -ssl 指定具体库
bash
python3 r0capture.py -U -ssl "*libssl.so*" com.app -v -p out.pcap
python3 r0capture.py -U -ssl "*libboringssl*" com.app -v -p out.pcap
python3 r0capture.py -U -ssl "*conscrypt*" com.app -v -p out.pcap详见 -ssl 参数。
3. App 用自带 SSL(不支持)
若 App 用 Cronet/Flutter 自带 SSL,ApiResolver 找不到导出符号,r0capture 无法支持。详见 局限性。
4. 确认是 Android
javascript
console.log(Process.platform) // 应为 "linux"darwin 分支用 *libboringssl*,Android/Linux 用 *libssl*。
SSL_get_fd 缺失(允许)
SSL_get_fd 允许缺失,会用 return_zero 桩降级(地址变 0.0.0.0)。详见 return_zero。