frida so层脚本

遍历模块

function find_Module_android(){
Process.enumerateModules({
onMatch: function(module) {
// 获取模块路径
const path = module.path;

// 检查路径是否包含系统目录,如 /system/lib 或 /system/lib64
if (path.includes(‘/system/’)||path.includes(‘/apex/com.android.’)) {
return; // 如果是系统模块,则跳过
}

// 如果不是系统模块,打印模块信息
console.log(‘————————‘);
console.log(JSON.stringify(module));
console.log(‘————————‘);
},

onComplete: function() {
// 完成后的回调(可选)123
}
});
}

find_Module_android()

搜索函数

function find_module_android(fun_name = “SSL_”){

Process.enumerateModules().forEach(module =>{

// if (module.path && (module.path.includes(‘/system/’) ||
// module.path.includes(‘/apex/com.android.’)||module.path.includes(‘/vendor/lib64/’))) {
// return; // 跳过该模块,继续下一个
// }
if(module.name.indexOf(“.so”)>-1 ){

Module.enumerateExports(module.name).forEach(
v=>{

if(v.name.indexOf(fun_name)>-1){
console.log(‘————————‘);
console.log(JSON.stringify(module));
console.log(JSON.stringify(v));
console.log(‘————————‘);
}
})
}
})
}

find_module_android()

遍历导入表

var imports = Module.enumerateImports(“xxx.so”);

for(var i = 0; i < imports.length; i++){

console.log(‘————————‘);
console.log(JSON.stringify(imports[i]));
console.log(‘————————‘);

}

遍历导出表

var exports = Module.enumerateExports(“VBoxGuestControlSvc.DLL”);

for(var i = 0; i < exports.length; i++){

console.log(‘————————‘);
console.log(JSON.stringify(exports[i]));
console.log(‘————————‘);

}

遍历符号表

var symbols = Module.enumerateSymbols(“VBoxRT.dll”);

for(var i = 0; i < symbols.length; i++){

console.log(‘————————‘);
console.log(JSON.stringify(symbols[i]));
console.log(‘————————‘);

}

 

 

此条目发表在未分类分类目录。将固定链接加入收藏夹。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注