Skip to content

为什么 Hook SSL_read/write ​

🎯 r0capture 选择在 SSL_read/SSL_write 层 hook 的设计原理。

抓 HTTPS 明文的三条路 ​

三方案对比 ​

方案原理致命问题
私钥解密用服务器私钥解 TLSTLS 1.3 前向安全,私钥也解不了
中间人代理伪造 CA 证书做 MITM受 Pinning 阻挡,需绕过
SSL hook在加解密出入口拿明文无(不依赖私钥/不做 MITM)

为什么 SSL hook 最优 ​

1. 不依赖私钥 ​

SSL_write 拿到的是加密前的明文,根本不需要解密,所以:

  • TLS 1.2 / 1.3 都行
  • 前向安全不影响
  • 任何 cipher suite 都行

2. 不做中间人 ​

r0capture 不伪造证书、不冒充服务端,所以:

  • Pinning 对它无效(App 验的仍是真服务端证书)
  • 不需装 CA
  • 不需绕过任何校验

3. 精准 ​

只抓"已加密/已解密的应用数据",不抓 TLS 握手密文(那些也看不懂),抓到的就是可读明文。

局限 ​

局限原因
需 root/重打包要注入 frida
自带 SSL 栈(Flutter)不走系统 SSL_read/write
QUIC/HTTP3不走 TCP SSL
native 加密的应用层SSL 之上还有 App 自加密,r0capture 抓到的是 App 加密后的密文

详见 r0capture 局限性。

相关文档 ​

基于 VitePress 构建 · 教学用途