在导入表、导出表、符号表里找不到的函数,地址需要自己计算
计算方式:so基址+函数在so中的偏移+1
因此需要先得到so的基址,也就是模块基址
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| var module1 = Process.findModuleByName("libencryptlib.so");
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);
|