Frida检测下frida-dexdump的使用姿势
最近在逆向某app的时候,碰到了360加固,我这个刚入门的萌新只会frida-dexdump

一把梭下去直接报错了

看看加载了哪个so,发现是经典的libmsaoaidsec.so多线程反调

直接hook clone绕过
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| function nop_64(addr) { Memory.protect(addr, 4 , 'rwx'); var w = new Arm64Writer(addr); w.putRet(); w.flush(); w.dispose(); }
function hook_clone(soname) { var clone = Module.findExportByName('libc.so', 'clone'); Interceptor.attach(clone, { onEnter: function(args) { // args[3] 子线程的栈地址。如果这个值为 0,可能意味着没有指定栈地址 if(args[3] != 0){ var addr = args[3].add(96).readPointer() var so_name = Process.findModuleByAddress(addr).name; var so_base = Module.getBaseAddress(so_name); var offset = (addr - so_base); //console.log("===============>", so_name, addr,offset, offset.toString(16)); if(so_name.indexOf(soname) >= 0) { console.log("===============>", so_name, addr,offset, offset.toString(16)); nop_64(addr) } } }, onLeave: function(retval) { } }); }
setImmediate(hook_clone, "libmsaoaidsec.so")
|

已经成功绕过frida检测了,那么问题来了,要怎么配合frida-dexdump的使用呢
下载一份frida-dexdump的源码,将上面的代码添加到agent.js,然后导出为rpc函数

然后在sleep开始前调用该函数

现在就可以成功dump到东西了
