frida_hook_dlopen(当年到lib目录下找发现一个so都没有,hook下dlopen)
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
相关文章:
frida_hook_dlopen(当年到lib目录下找发现一个so都没有,hook下dlopen)
Frida 脚本用于拦截 Android 应用程序中的 dlopen 和 android_dlopen_ext 函数。这两个函数用于动态加载共享库,脚本通过拦截这些函数的调用来记录加载的库的路径。 代码分析 var dlopen Module.findExportByName(null, "dlopen"); // 6.0 var android…...
Zero to JupyterHub with Kubernetes中篇 - Kubernetes 常规使用记录
前言:纯个人记录使用。 搭建 Zero to JupyterHub with Kubernetes 上篇 - Kubernetes 离线二进制部署。搭建 Zero to JupyterHub with Kubernetes 中篇 - Kubernetes 常规使用记录。搭建 Zero to JupyterHub with Kubernetes 下篇 - Jupyterhub on k8s。 参考&…...
WordCloud去掉停用词(fit_words+generate)的2种用法
-------------词云图集合------------- WordCloud去掉停用词(fit_wordsgenerate)的2种用法 通过词频来绘制词云图(jiebaWordCloud) Python教程95:去掉停用词词频统计jieba.tokenize示例用法 将进酒—李白process_t…...
Python 中如何处理异常?
在Python中,异常处理是一种重要的编程技术,它允许开发者优雅地处理程序运行过程中出现的错误或异常情况,而不是让程序直接崩溃。 通过异常处理,我们可以使程序更加健壮、用户友好。 异常处理的基本结构 Python中最基本的异常处…...
C++——多态(下)
目录 引言 多态 4.多态的原理 4.1 虚函数表指针 4.2 多态的原理 5.单继承和多继承关系的虚函数表 5.1 单继承中的虚函数表 5.2 多继承中的虚函数表 结束语 引言 接下来我们继续学习多态。 没有阅读多态(上)的可以点击下面的链接哦~ C——多态…...
qsort函数详解+代码展示
文章目录 概要系列文章目录前言(1) 定义(2) 使用(举例子 上代码)1、定义数组:2、定义比较函数:3、调用 qsort:4、输出结果: (3) 注意事项 小结 概要 本篇博客将详细地介绍qsort排序函数,&#x…...
leetcode hot100【LeetCode 136. 只出现一次的数字】java实现
LeetCode 136. 只出现一次的数字 题目描述 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。 …...
(免费送源码)计算机毕业设计原创定制:Java+ssm+JSP+Ajax SSM棕榈校园论坛的开发
摘要 随着计算机科学技术的高速发展,计算机成了人们日常生活的必需品,从而也带动了一系列与此相关产业,是人们的生活发生了翻天覆地的变化,而网络化的出现也在改变着人们传统的生活方式,包括工作,学习,社交…...
对抗攻击算法:FGSM和PGD
FGSM 传送门 FGSM 利用了梯度上升的思想,通过损失函数相对于输入图像的梯度来找到 最容易 迷惑网络的方向,并沿着这个方向对图像进行微小的扰动。 FGSM 的基本想法是,沿着这个梯度的符号方向对图像进行微调,以最大化损失函数。具…...
【八股文】小米
文章目录 一、vector 和 list 的区别?二、include 双引号和尖括号的区别?三、set 的底层数据结构?四、set 和 multiset 的区别?五、map 和 unordered_map 的区别?六、虚函数和纯虚函数的区别?七、extern C …...
xtu oj 众数
样例输入# 3 1 0 1 2 1 1 2 3 1 1 2 2样例输出# 1 2 3 解题思路:与数组大小有关,先排序 举个例子思考一下 n4 k2 数组为1 2 3 4 如果我们想让众数那个位的值为3(即max3),3出现的次数为3,即众数为3,需要修改多少次…...
ENVI计算ROI分离度为灰色compute roi separability
我们在使用ENVI做影像分类的时候,需要采集样本兴趣区(ROI),在采集完兴趣区需要计算样本ROI的分离度。 但是有时会发下你 计算ROI分离度的选项为灰色状态不能计算。 如果不是以下问题: “一个是必须首先选择或创建至少…...
Adaboost集成学习 | Python实现基于NuSVR-Adaboost多输入单输出回归预测
目录 效果一览基本介绍程序设计参考资料效果一览 基本介绍 基于NuSVR-Adaboost多输入单输出回归预测python代码 NuSVR是一种支持向量回归(SVR)算法的变体,用于解决回归问题。SVR是一种监督学习方法,它用于预测连续目标变量,而不是分类标签。NuSVR在SVR的基础上引入了一个…...
Python学习第十三天--面向对象,类和对象
一、面向过程和面向对象区别 面向过程:需要实现一个功能时,着重的是开发的步骤和过程,每个步都需要自己亲力亲为,需要编写代码(自己来做) 面向对象:需要实现一个功能时,不注重的是…...
AI运用落地思考:如何用AI进行系统运维?
1. 故障预测与预防 数据收集与分析:通过收集系统的各种运行数据,如服务器性能指标(CPU使用率、内存占用、磁盘I/O等)、网络流量数据、应用程序日志等。利用AI算法对这些海量数据进行分析,挖掘数据中的模式和相关性。例…...
springboot学习-分页/排序/多表查询的例子
最近喜欢上了springboot,真是个好的脚手架。今天继续学习分页/排序/多表查询等复杂功能。按步骤记录如下. 按步骤做的发现不可用,最终还是用的jdbctemplate解决。这也是一次经验。总计在最后。 1.maven依赖 首先从https://start.spring.io/ 选择需要的…...
windows 应用 UI 自动化实战
UI 自动化技术架构选型 UI 自动化是软件测试过程中的重要一环,网络上也有很多 UI 自动化相关的知识或资料,具体到 windows 端的 UI 自动化,我们需要从以下几个方面考虑: 开发语言 毋庸置疑,在 UI 自动化测试领域&am…...
ffmpeg命令详解
原文网址:ffmpeg命令详解_IT利刃出鞘的博客-CSDN博客 简介 本文介绍ffmpeg命令的用法。 命令示例 1.mp4和avi的基本互转 ffmpeg -i D:\input.mp4 E:\output.avi ffmpeg -i D:\input.avi E:\output.mp4 -i 表示input,即输入。后面填一个输入地址和一…...
【漏洞复现】CVE-2022-43396
漏洞信息 NVD - CVE-2022-43396 In the fix for CVE-2022-24697, a blacklist is used to filter user input commands. But there is a risk of being bypassed. The user can control the command by controlling the kylin.engine.spark-cmd parameter of conf. 背景介绍…...
文件的摘要算法(md5、sm3、sha256、crc)
为了校验文件在传输中保证完整性和准确性,因此需要发送方先对源文件产生一个校验码,并将该值传输给接收方,将附件通过ftph或http方式传输后,由接收方使用相同的算法对接收文件再获取一个新的校验码,将该值和发送方传的…...
C++初阶-list的底层
目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...
Day131 | 灵神 | 回溯算法 | 子集型 子集
Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣(LeetCode) 思路: 笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...
使用分级同态加密防御梯度泄漏
抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...
Cinnamon修改面板小工具图标
Cinnamon开始菜单-CSDN博客 设置模块都是做好的,比GNOME简单得多! 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...
Python爬虫(二):爬虫完整流程
爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...
uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...
五子棋测试用例
一.项目背景 1.1 项目简介 传统棋类文化的推广 五子棋是一种古老的棋类游戏,有着深厚的文化底蕴。通过将五子棋制作成网页游戏,可以让更多的人了解和接触到这一传统棋类文化。无论是国内还是国外的玩家,都可以通过网页五子棋感受到东方棋类…...
聚六亚甲基单胍盐酸盐市场深度解析:现状、挑战与机遇
根据 QYResearch 发布的市场报告显示,全球市场规模预计在 2031 年达到 9848 万美元,2025 - 2031 年期间年复合增长率(CAGR)为 3.7%。在竞争格局上,市场集中度较高,2024 年全球前十强厂商占据约 74.0% 的市场…...
ArcGIS Pro+ArcGIS给你的地图加上北回归线!
今天来看ArcGIS Pro和ArcGIS中如何给制作的中国地图或者其他大范围地图加上北回归线。 我们将在ArcGIS Pro和ArcGIS中一同介绍。 1 ArcGIS Pro中设置北回归线 1、在ArcGIS Pro中初步设置好经纬格网等,设置经线、纬线都以10间隔显示。 2、需要插入背会归线…...
Python的__call__ 方法
在 Python 中,__call__ 是一个特殊的魔术方法(magic method),它允许一个类的实例像函数一样被调用。当你在一个对象后面加上 () 并执行时(例如 obj()),Python 会自动调用该对象的 __call__ 方法…...
