如何绕过frida反调试

发布时间 2023-08-15 10:48:28作者: 字母一哥

有的app,会检测frida调试,只要发现,就会不让app启动

一般这种公司的安全人员会单独写so文件用来检测,所以我们可以hook-app启动时,执行了那些so文件,发现执行到最后一个程序闪退了,一般就是因为这个so文件导致的,我们可以尝试删除试试

HOOK 安卓系统底层的函数:dlopen和android_dlopen_ext

hook app在启动过程中执行了那些so文件

import frida
import sys

rdev = frida.get_remote_device()
pid = rdev.spawn(["com.hupu.shihuo"])
session = rdev.attach(pid)

scr = """
Java.perform(function () {
    
    var dlopen = Module.findExportByName(null, "dlopen");
    var android_dlopen_ext = Module.findExportByName(null, "android_dlopen_ext");
    
    Interceptor.attach(dlopen, {
        onEnter: function (args) {
            var path_ptr = args[0];
            var path = ptr(path_ptr).readCString();
            console.log("[dlopen:]", path);
        },
        onLeave: function (retval) {
    
        }
    });
    
    Interceptor.attach(android_dlopen_ext, {
        onEnter: function (args) {
            var path_ptr = args[0];
            var path = ptr(path_ptr).readCString();
            console.log("[dlopen_ext:]", path);
        },
        onLeave: function (retval) {
    
        }
    });
    

});
"""
script = session.create_script(scr)


def on_message(message, data):
    print(message, data)


script.on("message", on_message)
script.load()
rdev.resume(pid)
sys.stdin.read()

操作

# 发现最后执行libmsaoaidsec.so报错了这样可以把这个so文件删除

# 步骤:
adb shell
su
cd /data/app/~~GdbbeiF3cSp7reYK3i9dNg==/com.hupu.shihuo-wgqwYzKqYcSDqMWwvyzXEQ==/lib/arm64/
rm libmsaoaidsec.so