先分析encode。
发现是一个导出函数。
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()
原文地址:https://blog.51cto.com/haidragon/2397709
时间: 2024-07-31 10:26:04