通过hook dlopen()函数根据最后加载的so文件来确定程序是在加载哪个so之后退出的。 functionhook_dlopen(){ //Android8.0之后加载so通过android_dlopen_ext函数 varandroid_dlopen_ext =Module.findExportByName(null,"android_dlopen_ext"); console.log("...
第一步hook android_dlopen_ext,查看检测代码在哪个so文件中。 多次运行此脚本,都是停止在libexecmain.so处。推测应该是libexecmain.so创建了检测线程,循环检测到就退出。(不是循环检测的话,那可以正常启动,然后frida附加进程,所以肯定是循环检测的) 接下来hook 线程创建的函数,查看是哪个so文件创建了检测线程,我们...
我们按照 hook dlopen去查看可能出现的对应frida检测的so文件。 function hook_dlopen(soName = '') { Interceptor.attach(Module.findExportByName(null, "android_dlopen_ext"), { onEnter: function(args) { var pathptr = args[0]; if (pathptr) { var path = ptr(pathptr).readCString(); console....
简单hook一下dlopen看一下是哪个**这么喜欢裸奔的frida functionhook_dlopen(){Interceptor.attach(Module.findExportByName(null,"android_dlopen_ext"),{onEnter:function(args){varpathptr=args[0];if(pathptr!==undefined&&pathptr!=null){varpath=ptr(pathptr).readCString();console.log("load "+path);}...
一般这种公司的安全人员会单独写so文件用来检测,所以我们可以hook-app启动时,执行了那些so文件,发现执行到最后一个程序闪退了,一般就是因为这个so文件导致的,我们可以尝试删除试试 HOOK 安卓系统底层的函数:dlopen和android_dlopen_ext hook app在启动过程中执行了那些so文件 ...
functionhook_dlopen(){//Android8.0之后加载so通过android_dlopen_ext函数varandroid_dlopen_ext=Module.findExportByName(null,"android_dlopen_ext");console.log("addr_android_dlopen_ext",android_dlopen_ext);Interceptor.attach(android_dlopen_ext,{onEnter:function(args){varpathptr=args[0];if(pathptr!=...
this.call_hook = true;//dlopen函数找到了 } }, onLeave: function (retval) { if (this.call_hook) {//dlopen函数找到了就hook so inline_hook(); } } }); // 高版本Android系统使用android_dlopen_ext var android_dlopen_ext = Module.findExportByName(null, "android_dlopen_ext"); ...
而Frida检测一般都是在Native层(也就是so层)实现的,首先需要定位检测进程是在哪个so文件中实现的,这里我们就需要先hook Android的动态链接库加载函数,观察它加载到哪个so的时候程序会崩溃 hookandroid_dlopen_ext>查看so文件的加载流程 vardlopen_interceptor=hook_dlopen();functionhook_dlopen(){Interceptor.attach(Mod...
使用frida hook JNI_OnLoad函数,如果调用了该函数就输出一行日志,如果没有日志输出,那么就说明检测点在.init_xxx函数中,注入的时机可以选择dlopen加载完成之后。 function hook_dlopen(soName = '') { Interceptor.attach(Module.findExportByName(null, "android_dlopen_ext"), ...
thumb 指令,函数地址计算方式: so 基址 + 函数在 so 中的偏移 + 1 arm 指令,函数地址计算方式: so 基址 + 函数在 so 中的偏移 7.Hook_dlopen dlopen源码 android_dlopen_ext源码 代码语言:javascript 代码运行次数:0 运行 AI代码解释 function hook_dlopen() { var dlopen = Module.findExportByName(null...