先分析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()
