百趣云 百趣云的博客

🔖SO逆向

博主
百趣云
1天前 · NEW!
为什么静态符号找不到 native 方法分析 SO 时经常遇到:Java 层声明了 public static native String getSign(...),但 IDA 的导出表里找不到 Java_com_xxx_getSign。原因是 JNI 动态注册——SO 在 JNI_OnLoad 里调用 RegisterNatives,把 Java 方法名和 native 函数地址运行时绑定,符号表里完全没有痕迹。这是商业 App 的标配做法,目的就是增加静态分析难度。但绑定动作本身必须调用系统 API,这就是突破口。RegisterNatives 的数据结构动态注册的核心是一个 JNINat
博主
百趣云
1天前 · NEW!
TracerPid 检测的原理Linux 下进程被 ptrace 附加时,/proc/self/status 里的 TracerPid 字段会变成调试器的 PID,未被调试时是 0。SO 反调试的标准做法就是周期性读这个文件:// 典型检测代码(SO 里的实现) int check_debugger() { char buf[512]; int fd = open("/proc/self/status", O_RDONLY); read(fd, buf, sizeof(buf)); close(fd); char* p = strst