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 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
| if (Java.available) { Interceptor.attach( Module.findExportByName( "libanti_frida.so", "Java_com_example_antifrida_MainActivity_HelloWorld" ), { onEnter: function (args) { console.log("Enter native HelloWorld ——"); }, onLeave: function (retVal) { console.log("Leave native HelloWorld ——"); console.log("retVal : ", retVal); console.log("try to modify it to : ", "hacked!"); var env = Java.vm.getEnv(); var jstrings = env.newStringUtf("hacked!"); retVal.replace(jstrings); }, } ); var addr = Module.findExportByName("libanti_frida.so", "hello_world"); console.log("hello_world addr : ", addr); Interceptor.attach(addr, { onEnter: function (args) { console.log("Enter native hello_world ——"); }, onLeave: function (retVal) { console.log("Leave native hello_world ——"); console.log("retVal : ", retVal.readUtf8String()); }, }); var str_name_so = "libanti_frida.so"; var n_addr_func_offset = 0x00001970; var n_addr_so = Module.findBaseAddress(str_name_so); var n_addr_func = parseInt(n_addr_so, 16) + n_addr_func_offset; var ptr_func = new NativePointer(n_addr_func); console.log("hello_world addr : ", ptr_func); Interceptor.attach(ptr_func, { onEnter: function (args) { console.log("address hook start"); }, onLeave: function (retval) { console.log("return"); }, }); } else { console.log("boot err"); }
|