Skip to content

找不到 SSL 符号 ​

❌ Could not find *libssl*!SSL_read 异常。

症状 ​

Error: Could not find *libssl*!SSL_read

initializeGlobals 用 ApiResolver 枚举 *libssl*!SSL_read 等,零匹配且不是 SSL_get_fd,直接抛异常。

原因 ​

原因说明
SSL 库名不匹配ROM/加固把 libssl 改名
App 用自带 SSLCronet/Flutter 静态链接 BoringSSL
设备非 AndroidProcess.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。

相关文档 ​

基于 VitePress 构建 · 教学用途