function hook_dlopen() { //实时监控目标进程自己在运行过程中的 so 加载行为 //确定 frida 检测在哪个 so 中 var dlopen_addr = Module.findExportByName("libdl.so", "android_dlopen_ext"); console.log("dlopen_addr", dlopen_addr); Interceptor.attach(dlopen_addr, { onEnter: function (args) {
console.log("args1", args[0].readCString(), "\n"); }, onLeave: function (retval) {
function hook_dlopen() { var dlopen_addr = Module.findExportByName("libdl.so", "android_dlopen_ext"); console.log("dlopen_addr", dlopen_addr); Interceptor.attach(dlopen_addr, { onEnter: function (args) {
//console.log("args1", args[0].readCString(), "\n"); var name = ptr(args[0]).readCString(); if (name.indexOf("libmsaoaidsec") >= 0) { console.log("this"); //hook_pthread_creat() //进入该so 就放钩子 hook_init(); } } })
}
function hook_init() { var system_addr = Module.findExportByName("libc.so", "__system_property_get"); Interceptor.attach(system_addr, { onEnter: function (args) { var name = ptr(args[0]).readCString() if (name.indexOf("ro.build.version.sdk") >= 0) { console.log("name", name); //这是.init_proc刚开始执行的地方,是一个比较早的时机点 var addr = Process.getModuleByName("libmsaoaidsec.so").base; console.log("libmsaoaidsec.so----", addr); hook_pthread_creat() //bypass() //注入代码
}
}
}) }
function hook_pthread_creat() {
var pthread_creat = Module.findExportByName("libc.so", "pthread_create") Interceptor.attach(pthread_creat, { onEnter: function (args) {
var func_addr = args[2]; console.log("The thread function address is " + func_addr) } }) }
function hook_dlopen() { var dlopen_addr = Module.findExportByName("libdl.so", "android_dlopen_ext"); console.log("dlopen_addr", dlopen_addr); Interceptor.attach(dlopen_addr, { onEnter: function (args) {
//console.log("args1", args[0].readCString(), "\n"); var name = ptr(args[0]).readCString(); if (name.indexOf("libmsaoaidsec") >= 0) { console.log("this"); //hook_pthread_creat() hook_init(); } } })
}
function hook_init() { var system_addr = Module.findExportByName("libc.so", "__system_property_get"); Interceptor.attach(system_addr, { onEnter: function (args) { var name = ptr(args[0]).readCString() //console.log(name); if (name.indexOf("ro.build.version.sdk") >= 0) { console.log("name", name); //这是.init_proc刚开始执行的地方,是一个比较早的时机点 //在这bypassfrida检测 bypass() }
}
}) }
function hook_pthread_creat() {
var pthread_creat = Module.findExportByName("libc.so", "pthread_create") Interceptor.attach(pthread_creat, { onEnter: function (args) {
var func_addr = args[2]; console.log("The thread function address is " + func_addr) } })