在导入表、导出表、符号表里找不到的函数,地址需要自己计算

计算方式:so基址+函数在so中的偏移+1

因此需要先得到so的基址,也就是模块基址

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// 各种方式得到so基址
var module1 = Process.findModuleByName("libencryptlib.so");
//console.log(JSON.stringify(module1));
console.log("module1", module1.base);

var module2 = Process.getModuleByName("libencryptlib.so");
console.log("module2", module2.base);

var soAddr = Module.findBaseAddress("libencryptlib.so");
console.log("soAddr", soAddr);

var modules = Process.enumerateModules();
for(let i = 0; i < modules.length; i++){
if(modules[i].name == "libencryptlib.so"){
console.log(modules[i].name + " " + modules[i].base);
}
}

var module = Process.findModuleByAddress(Module.findBaseAddress("libencryptlib.so"));
console.log("module " + module.name + " " + module.base);