Android NDK 与 JNI
🔗 Native 与 Java 互调的桥梁,理解 r0capture 双层 hook。
JNI (Java Native Interface)
JNI 让 Java 代码调用 native(C/C++)函数,也允许 native 调 Java。
r0capture 的两层 hook
| 层 | hook 什么 | 工具 |
|---|---|---|
| Java | Socket/KeyStore 方法 | Java.use |
| Native | SSL_read/write | Interceptor.attach |
两层互补:TLS 流量在 native 层抓(拿到解密后明文),裸 TCP/证书操作在 Java 层抓。
NDK
NDK 是 Android 开发 native 代码的工具链(编译器、头文件、libc)。App 自带的 .so 就是 NDK 编译的。
JNI 函数签名
Java 方法在 native 端有 mangled 名,如:
Java_com_x_MyClass_nativeMethod
Frida hook native 不需管 JNI 名,直接 hook native 库里的导出符号(如 SSL_write)。