逆向加固安卓App,JNI边界到底能不能自动化?

原创
alex 1小时前 阅读数 3 #头条
做安卓逆向最折磨人的不是混淆逻辑,而是JNI这道Java到Native的边界。.so被strip、方法靠RegisterNatives动态绑定、OLLVM把JNI_OnLoad拍扁成一大坨控制流,JNIEnv调用编译出来全是(*(*(code*)(param_1+0x548)))这种裸指针偏移。一个安全工程师写了个叫JNISleuth-MCP的工具,把整条流水线自动化:解析多DEX APK提取native声明,扫.rodata找三元组,静态解析ARM64 OLLVM的CSEL+BR间接跳转,甚至就地patch成直跳。对检测Frida的运行时样本,它用Dobby hook在RegisterNatives中间截获绑定。233个槽的JNIEnv vtable和恢复的C签名同步进Ghidra和IDA。附合成crackme,三十秒跑通。思路扎实,对做安卓逆向的人,这类自动化能把最枯燥的手工活砍掉大半。

原文:JNISleuth-MCP – Recover Stripped JNI Bindings and Ollvm Branches for Ghidra/Ida · 来源:Hacker News

版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除