网站 展示,seo如何提高排名,软件开发服务费税率,计算机网络技术网站开发与设计Frida 脚本用于拦截 Android 应用程序中的 dlopen 和 android_dlopen_ext 函数。这两个函数用于动态加载共享库#xff0c;脚本通过拦截这些函数的调用来记录加载的库的路径。
代码分析
var dlopen Module.findExportByName(null, dlopen); // 6.0
var android…Frida 脚本用于拦截 Android 应用程序中的 dlopen 和 android_dlopen_ext 函数。这两个函数用于动态加载共享库脚本通过拦截这些函数的调用来记录加载的库的路径。
代码分析
var dlopen Module.findExportByName(null, dlopen); // 6.0
var android_dlopen_ext Module.findExportByName(null, android_dlopen_ext); // 高版本8.1以上Interceptor.attach(dlopen, {onEnter: function (args) {var path_ptr args[0];var path ptr(path_ptr).readCString();console.log([dlopen:], path);},onLeave: function (retval) {// Thread.sleep(3);}
});Interceptor.attach(android_dlopen_ext, {onEnter: function (args) {var path_ptr args[0];var path ptr(path_ptr).readCString();console.log([dlopen_ext:], path);},onLeave: function (retval) {// Thread.sleep(3);}
});1. 关键功能
1.1 dlopen 和 android_dlopen_ext
dlopen: 这是一个标准的动态链接库加载函数通常用于加载共享库。android_dlopen_ext: 这是 Android 特有的扩展版本提供了额外的功能通常在 Android 8.1 及以上版本中使用。
2. 拦截逻辑
2.1 Interceptor.attach
Interceptor.attach: 该方法用于拦截指定函数的调用。它接受两个参数要拦截的函数地址和一个包含 onEnter 和 onLeave 方法的对象。
2.2 onEnter
onEnter: 当被拦截的函数被调用时执行。这里args[0] 是传递给 dlopen 或 android_dlopen_ext 的第一个参数通常是要加载的库的路径。ptr(path_ptr).readCString(): 读取指针指向的字符串获取库的路径并将其打印到控制台。
2.3 onLeave
onLeave: 当被拦截的函数返回时执行。这里可以添加额外的逻辑例如延迟或处理返回值但当前代码中被注释掉了。
3. 使用方法
要使用这个脚本需要 安装 Frida: 确保您已经在设备上安装了 Frida Server并且在您的计算机上安装了 Frida 工具。 运行命令: 使用如下命令运行脚本 frida -U -f your_app_package_name -l path_to_your_script.js -o output_log_file这里 your_app_package_name 是您要监控的应用程序包名path_to_your_script.js 是脚本的路径output_log_file 是输出日志文件的路径。
输出例子
/data/app/~~KVEKJlJur2r6197VML5LRw/com.shopee.sg-ZyVbLWincySSEAiqQSuPLQ/split_config.arm64_v8a.apk!/lib/arm64-v8a/libshpssdk.so