weiniuda 发表于 2020-11-15 19:55

怎么找so未导出函数偏移地址

本帖最后由 weiniuda 于 2020-11-15 20:37 编辑



我想用frida来hook so库中的未导出函数sub_732A8,通过ida查看函数的代码如上图,我把0x000732A8+1(Thumb指令)当成函数的偏移地址,但是一直hook不成功。有个搞不懂:
1、我这种方式找的函数偏移地址是否正确?如果不正确,我应该要怎么找到未导出函数sub_732A8的地址

路过的大神麻烦解惑一下,困扰了好久了

weiniuda 发表于 2020-11-15 20:04

我在论坛看到一个大神是这样写的https://www.52pojie.cn/thread-1173434-1-1.html

var pointer = Module.findExportByName("libcore.so" , "JNI_OnLoad");
console.log("pointer: "+pointer);//                     用ida查看JNI_OnLoad 在so中的IDA      未导出函数sub_22F4
var hookpointer = '0x' +parseInt(parseInt(pointer) - parseInt('0x1AD0') + parseInt('0x22F4')).toString(16).toUpperCase();
console.log("hookpointer: "+hookpointer);
var nativePointer = new NativePointer(hookpointer);
console.log("net native pointers:"+nativePointer);

这里有点看不懂,parseInt('0x1AD0') + parseInt('0x22F4')
0x1AD0和0x22F4分别是只JIN_OnLoad和sub_22F4的偏移地址吗?如果是,在ARM Thumb指令中,是否每个地址都要加1?
页: [1]
查看完整版本: 怎么找so未导出函数偏移地址