能力值:
( LV7,RANK:105 )
2 楼
先用IDA分析so函数,再用frida hook函数里的子函数来分析吧
能力值:
( LV2,RANK:10 )
3 楼
yegu
先用IDA分析so函数,再用frida hook函数里的子函数来分析吧
就是因为挨个子函数分析麻烦,所以才要批量打印地址信息的
听人说frida有方法实现,不知道怎么实现~
能力值:
( LV3,RANK:30 )
4 楼
trace native?
能力值:
( LV2,RANK:10 )
5 楼
TUGOhost
trace native?
是的,不借助ida,去解析他的所有普通函数,frida本身不能解析so里的所有函数并进行hook吗
能力值:
( LV1,RANK:0 )
6 楼
“打印出来这个函数接下来都调用了哪些函数” 这个很难,除非你hook了所有函数。但是可以打印当前函数栈。
能力值:
( LV2,RANK:10 )
7 楼
mb_hgrbqfun
“打印出来这个函数接下来都调用了哪些函数” 这个很难,除非你hook了所有函数。但是可以打印当前函数栈。
keystone或者capstone是否能打印呢,我记得其中一个可以在程序执行的时候打印汇编指令,根据汇编指令,可以识别这条指令是否是一条函数调用指令,如果是,就打印其地址
能力值:
( LV1,RANK:0 )
8 楼
threadroc
keystone或者capstone是否能打印呢,我记得其中一个可以在程序执行的时候打印汇编指令,根据汇编指令,可以识别这条指令是否是一条函数调用指令,如果是,就打印其地址
我最近也有同样的需求,楼主你解决了么
能力值:
( LV2,RANK:10 )
9 楼
你可以使用Frida来完成这个任务。下面是大致的步骤:
1、连接到目标进程,获取相关的Module和函数的地址。
var targetModuleBase = Module.findBaseAddress("target_module.so");
var targetFunctionAddress = Module.findExportByName("target_module.so", "target_function");
2、使用Interceptor来hook住目标函数,获取目标函数的参数,然后打印出来。在回调函数中,你可以继续使用Interceptor来hook住目标函数调用的其他函数,这样就可以追踪到它们的调用了。
Interceptor.attach(targetFunctionAddress, {
onEnter: function(args) {
// 打印目标函数的参数
console.log("Target function arguments: ", args[0], args[1]);
// hook住目标函数调用的其他函数
var otherFunctionAddress = Module.findExportByName("target_module.so", "other_function");
Interceptor.attach(otherFunctionAddress, {
onEnter: function(args) {
console.log("Other function arguments: ", args[0], args[1]);
}
});
}
});
需要注意的是,对于一些有参数的函数,参数的类型可能会是结构体或指针等,需要根据具体情况进行处理。同样的,返回值的类型也需要根据实际情况进行解析。