关键是把探针挂在 TLS 加密前的用户态密码库入口。对 OpenSSL/BoringSSL 走 SSL_write/SSL_read 的 uprobe/uretprobe 抓明文;对 Go 静态链接二进制通过 ELF 符号表 + DWARF 信息定位 crypto/tls.(*Conn).Write/Read 按偏移挂钩;Python _ssl 扩展底层仍走 OpenSSL;被 strip 的二进制则用 BTF + .eh_frame 兜底。应用与密码库之间永远是明文 buffer,因此不需要私钥、不需要中间人证书。抓到的明文再通过 BPF ringbuf 零拷贝送到用户态解析。




