先分析encode。 发现是一个导出函数。 ida找它,如图所示。 查看引用,找到调用它的函数。 获取它在文件中的偏移,如图所示。 hook 地址时记得加1。 # -*- coding: UTF-8 -*-import frida, sysjs
发现是一个导出函数。
ida找它,如图所示。
查看引用,找到调用它的函数。
获取它在文件中的偏移,如图所示。
hook 地址时记得加1。
# -*- coding: UTF-8 -*- import frida, sys jsCode = """ Java.perform(function(){ var soAddr = Module.findBaseAddress("libhello.so"); send(‘soAddr: ‘ + soAddr); var MD5FinalAddr = soAddr.add(0x1768 + 1); send(‘MD5FinalAddr: ‘ + MD5FinalAddr); Interceptor.attach(MD5FinalAddr, { onEnter: function(args){ send(args[0]); send(args[1]); }, onLeave: function(retval){ send(retval); } }); }); """; def message(message, data): if message["type"] == ‘send‘: print(u"[*] {0}".format(message[‘payload‘])) else: print(message) process = frida.get_remote_device().attach("com.xiaojianbang.app") script= process.create_script(jsCode) script.on("message", message) script.load() sys.stdin.read()