-
-
[原创]frida hook loadLibrary
-
发表于:
2020-10-29 19:22
15189
-
[原创]frida hook loadLibrary
最近在研究AndLua,提取源码的方法还是老套的hook lua_load,论坛上关于提取方法的帖子有很多,这里就不再赘述。
但是有一个小问题,如果使用frida -f去创建进程的方式hook应用并加载脚本,这时候我们要hook的模块libluajava.so还没有加载,如果app先跑起来再frida -n附加进程,我们的lua脚本已经载入完了,这时候hook lua_load得不到任何东西,所以考虑hook system.loadLibrary在里面安装native层的hook。
一般frida hook的java方法都可以用this.xxx(p0,p1)去调用,但是loadLibrary不行(希望有大佬告诉我原因),所以在github上找了一个例子,放在论坛上方便大家用。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | Java.perform(function(){
const system = Java.use( 'java.lang.System' );
const Runtime = Java.use( 'java.lang.Runtime' );
const VMStack = Java.use( 'dalvik.system.VMStack' );
system.loadLibrary.implementation = function(path){
console.log(path);
/ / this.loadLibrary(path);
console.log( 'System.loadLibrary("' + path + '")' );
const loaded = Runtime.getRuntime().loadLibrary0(VMStack.getCallingClassLoader(), path);
var mbase = Module.getBaseAddress( 'libluajava.so' );
Interceptor.attach(mbase.add( 0xC999 ),{
onEnter:function(args){
console.log(hexdump(Memory.readPointer(args[ 2 ]),{ length: 100 , ansi: true }));
}
});
}
});
|
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)