Skip to content

setssllib RPC ​

🔧 设备端导出的 RPC:指定要 hook 的 SSL 库路径。

本文档与 rpc-setssllib 互为补充,后者侧重 C 原型与 RPC 调用方式,本文侧重在 script.js 中的实现与用途。

📎 源码在线查看:script.js#L38-L49(rpc.exports)

是什么 ​

setssllib 是 script.js 通过 rpc.exports 暴露给主机端的函数,用于运行时切换/指定 r0capture 要 hook 的 SSL 库。

为什么需要 ​

多数 App 走系统 SSL(Conscrypt/libssl.so),r0capture 默认能 hook。但有些 App:

  • 自带 libssl(打包进 APK)
  • 用静态链接的 BoringSSL(如 Flutter)
  • 符号被 strip,默认找不到

此时需用 setssllib 显式指定 SSL 库路径。

用法 ​

主机端通过 frida RPC 调用:

python
script.exports.setssllib("/data/app/com.x/lib/arm64/libmyssl.so")

实现要点 ​

javascript
rpc.exports = {
    setssllib: function (path) {
        // 重新用 ApiResolver 在指定库找 SSL_read/write
        // 重新 hook
    }
};

调用后 r0capture 会在新指定的库里重新解析符号并 hook。

配合 -ssllib 参数 ​

CLI 的 -ssllib 在启动时指定;setssllib RPC 在运行中动态切换。两者最终都调到设备端的同一套符号解析逻辑。

相关文档 ​

基于 VitePress 构建 · 教学用途