hook Conscrypt 栈详解
🛡️ script.js hook Conscrypt 相关类,捕获 SSL 栈上下文。
📎 源码在线查看:
script.js(Conscrypt stack hook)
做什么
Conscrypt 是 Android 主 SSL 栈。r0capture hook Conscrypt 的几个关键类/方法,用于:
- 捕获 SSL 上下文(session id 等)
- 定位实际 SSL 实现位置
- 兜底抓包(当 SSL_read 符号找不到时)
hook 的类
javascript
// Conscrypt 的 socket 包装
Java.use("com.android.org.conscrypt.ConscryptFileDescriptorSocket");
// TrustManager(Pinning 校验常在此)
Java.use("com.android.org.conscrypt.TrustManagerImpl");
// SSLParametersImpl
Java.use("com.android.org.conscrypt.SSLParametersImpl");TrustManagerImpl 与 Pinning
TrustManagerImpl.checkServerTrusted 是很多 App 做 Pinning 的入口。r0capture hook 它定位 Pinning(不是绕过)——打印调用栈看 App 在哪做了额外校验。
session id 获取
javascript
// 从 Conscrypt socket 取 session
var session = socket.getSSLSession();
var id = session.getId(); // byte[] session idsession id 用于关联同一 TLS 会话的多个包。详见 get-ssl-session-id。
与 native SSL hook 的关系
两层都 hook,互补。