SSL_get_fd(C 原型)
🔌 从 SSL 对象拿到底层 socket 文件描述符。
C 原型
c
#include <openssl/ssl.h>
int SSL_get_fd(const SSL *ssl);
// 返回 fd,-1 表示无r0capture 的用法
javascript
// initializeGlobals 里包装
SSL_get_fd = new NativeFunction(addresses["SSL_get_fd"], "int", ["pointer"]);
// getPortsAndAddresses 里调用
var fd = SSL_get_fd(args[0]); // args[0] 是 ssl 指针
var addr = Socket.localAddress(fd);用途
从 ssl 对象拿 fd,再用 Frida 的 Socket API 查地址端口。
缺失时的降级
个别 ROM 缺 SSL_get_fd 导出,initializeGlobals 置 0 并用 return_zero 桩:
javascript
if (addresses["SSL_get_fd"] == 0) {
SSL_get_fd = return_zero; // 永远返回 0
}此时 SSL_get_fd(ssl) 返回 0,getPortsAndAddresses(0, ...) 走降级分支,地址置 0。详见 return_zero 与 pcap 里地址是 0.0.0.0。