Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >【Android 逆向】Android 中常用的 so 动态库 ( libdvm.so | libart.so | libandroid_runtime.so | libandroidfw.so )

【Android 逆向】Android 中常用的 so 动态库 ( libdvm.so | libart.so | libandroid_runtime.so | libandroidfw.so )

作者头像
韩曙亮
发布于 2023-03-29 11:44:01
发布于 2023-03-29 11:44:01
3.1K00
代码可运行
举报
运行总次数:0
代码可运行

文章目录

一、Android 虚拟机涉及的 libdvm.so 动态库 和 libart.so 动态库


libdvm.so 动态库是 Android 的 Dalvik 虚拟机使用的动态库 ; Android 5.0 及以下系统使用 Dalvik 虚拟机 ;

libart.so 动态库是 Android 的 Art 虚拟机使用的动态库 ; Android 5.1 及以上系统使用 Art 虚拟机 ;

目前所有的模拟器 , 真机获取的虚拟机动态库都是 libart.so 动态库 ; 5.0 以下的 Android 设备 , 现在很少了 ;

执行

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cp /system/lib/libart.so /sdcard/Pictures

命令 , 将 libart.so 动态库拷贝到 /sdcard/Pictures 目录 , 之后可以将其拷贝到文件系统 , 使用 64 位 IDA 分析该动态库 ;

二、Android 运行时相关 libandroid_runtime.so 动态库


libandroid_runtime.so 是 Android 运行时相关的函数库 ; 如 : Java 层与 Native 层交互的 JNI 机制 , 系统控制机制 , 获取硬件设备 ( GPS , 陀螺仪 ) 数据 等 ;

执行

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cp /system/lib/libandroid_runtime.so /sdcard/Pictures

命令 , 将 libandroid_runtime.so 动态库拷贝到 /sdcard/Pictures 目录 , 之后可以将其拷贝到文件系统 , 使用 64 位 IDA 分析该动态库 ;

三、Android Framework 层 Native 实现相关 libandroidfw.so 动态库


libandroidfw.so 是 Android 的 Framework 层的 Native 实现部分的动态库 ,

执行

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cp /system/lib/libandroidfw.so /sdcard/Pictures

命令 , 将 libandroidfw.so 动态库拷贝到 /sdcard/Pictures 目录 , 之后可以将其拷贝到文件系统 , 使用 64 位 IDA 分析该动态库 ;

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-10-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【Android 逆向】Android 中常用的 so 动态库 ( 拷贝 /system/lib/ 中的 Android 系统 so 动态库 )
将 Android 系统的 /system/lib/libc.so 动态库 , 拷贝到 /sdcard/Pictures/lib/ 目录中 ;
韩曙亮
2023/03/29
2.2K0
【Android 逆向】Android 中常用的 so 动态库 ( 拷贝 /system/lib/ 中的 Android 系统 so 动态库 )
【Android 逆向】Android 中常用的 so 动态库 ( libm.so 数学函数动态库 | liblog.so 日志模块动态库 | libselinux.so 安全模块动态库 )
libm.so 是数学相关函数库 , 该动态库是 libc.so 动态库的依赖库 , 是最基础的函数库 ;
韩曙亮
2023/03/29
1.4K0
【Android 逆向】Android 中常用的 so 动态库 ( libm.so 数学函数动态库 | liblog.so 日志模块动态库 | libselinux.so 安全模块动态库 )
Android远程调试的探索与实现
作为移动开发者,最头疼的莫过于遇到产品上线以后出现了bug,但是本地开发环境又无法复现的情况。常见的调查线上棘手问题方式大概如下: 以上两种方法在之前调查线上问题时都有使用,但因为二者都有明显的缺点,
美团技术团队
2018/03/12
2.1K0
Android远程调试的探索与实现
【Android 逆向】Android 中常用的 so 动态库 ( /system/lib/libc.so 动态库 | libc++.so 动态库 | libstdc++.so 动态库 )
命令 , 将 libc.so 拷贝到手机的 SD 卡中 , 从 SD 卡可以将该动态库拷贝到 Windows 文件中 ;
韩曙亮
2023/03/29
2.7K0
【Android 逆向】Android 中常用的 so 动态库 ( /system/lib/libc.so 动态库 | libc++.so 动态库 | libstdc++.so 动态库 )
Android系统启动——4 zyogte进程 (C篇)
我们大家都是知道"一鼎三足"和"三角形的稳定性",那么支撑Android系统的三个"足"是什么?即init进程、SystemServer进程和Zygote进程。本篇文章我们就好好来研究下Zygote进程
隔壁老李头
2018/08/30
2.9K0
Android系统启动——4 zyogte进程 (C篇)
Android逆向分析大全
Android程序的特点相比在于使用混淆方式打包,将包名、类名、函数名改成不易看懂的字母,从而使生成的apk小很多(android studio提供了release编译方式,使用proguard混淆),因此反编译apk最多的工作在于重构这些名称,这一点和pc上一致,对于android native程序(jni)则和pc上基本一致,不同之处在于常见的是arm汇编。
bosh123
2020/12/22
3.6K0
Frida Internal - Part 3: Java Bridge 与 ART hook
前面的文章中介绍了 frida 的基础组件 frida-core,用于实现进程注入、通信和管理等功能。加上 frida-gum 和 gum-js 的核心能力,我们已经可以很方便地使用 JavaScript 脚本来进行代码劫持、动态跟踪等进程分析操作。
evilpan
2023/02/12
1.7K0
如何调试Android Native Framework
半年前写了一篇文章,介绍 如何调试Android Framework,但是只提到了Framework中Java代码的调试办法,但实际上有很多代码都是用C++实现的;无奈当时并并没有趁手的native调试工具,无法做到像Java调试那样简单直观(gdb+eclipse/ida之流虽然可以但是不完美),于是就搁置下了。
weishu
2018/09/05
3.8K0
如何调试Android Native Framework
【Android NDK 开发】NDK C/C++ 代码崩溃调试 - Tombstone 报错信息日志文件分析 ( 使用 addr2line 命令行工具查找动态库中的报错代码位置 )
Tombstone 报错信息日志文件被保存在了 /data/tombstones/ 目录下 , 先 ROOT 再说 , 没有 ROOT 权限无法访问该目录中的信息 ;
韩曙亮
2023/03/30
1.3K0
【Android NDK 开发】NDK C/C++ 代码崩溃调试 - Tombstone 报错信息日志文件分析 ( 使用 addr2line 命令行工具查找动态库中的报错代码位置 )
如何识别C++编译以后的函数名
C/C++语言在编译以后,函数的名字会被编译器修改,改成编译器内部的名字,这个名字会在链接的时候用到。如果用backtrace之类的函数打印堆栈时,显示的就是被编译器修改过的名字,比如说_Z3foov 。 那么这个函数真实的名字是什么呢?
上善若水.夏
2018/09/28
2.6K0
android之ART虚拟机和DVM虚拟机
在4.2的时候多了一个虚拟机选择,这是新的虚拟机 ART(Android Runingtime)。
李小白是一只喵
2021/02/04
1.1K0
android之ART虚拟机和DVM虚拟机
深入Android源码系列(一)
本文讲解内容有 loadLibrary流程 linker ELF ndk开发以及配置调试版本 ndk-gdb --start调试so gdb 调试b
用户1263308
2018/02/02
2.3K0
深入Android源码系列(一)
Dalvik,ART与ODEX简析
如果你有这样的问题: 1.Dalvik和ART的区别 2.DEX在Dalvik转化为ODEX和ART中转化为ODEX的过程有上面区别 3.multidex在dalvik上起作用,ART上使用的也是multidex么(如果不是的话在application中写入multidex.install会对apk启动造成影响么)
Anymarvel
2018/10/22
1.6K0
Dalvik,ART与ODEX简析
Android Handler机制 – MessageQueue如何处理消息
最近在查看应用的线上日志统计时,发现一个 MessageQueue.nativePollOnce() 的记录,具体信息如下:
全栈程序员站长
2022/11/17
7390
Android Handler机制 – MessageQueue如何处理消息
【Android NDK 开发】NDK C/C++ 代码崩溃调试 - Tombstone 报错信息日志文件分析 ( 获取 tombstone_0X 崩溃日志信息 )
Tombstone 报错信息日志文件被保存在了 /data/tombstones/ 目录下 , 先 ROOT 再说 , 没有 ROOT 权限无法访问该目录中的信息 ;
韩曙亮
2023/03/28
1.4K0
【Android NDK 开发】NDK C/C++ 代码崩溃调试 - Tombstone 报错信息日志文件分析 ( 获取 tombstone_0X 崩溃日志信息 )
【Android 安装包优化】APK 打包流程 ( 文件结构 | 打包流程 | 安装流程 | 安卓虚拟机 )
将打包好的 APK 文件安装到 Android 手机中 , 就是可运行的应用程序 ;
韩曙亮
2023/03/29
1.4K0
【Android 安装包优化】APK 打包流程 ( 文件结构 | 打包流程 | 安装流程 | 安卓虚拟机 )
Android Framework中的Application Framework层介绍「建议收藏」
  Linux2.6内核层,核心库层,应用框架层,应用层。我今天重点介绍一下应用框架层Framework。
全栈程序员站长
2022/11/04
2.9K0
Android Framework中的Application Framework层介绍「建议收藏」
【胖虎的逆向之路】03——Android一代壳脱壳办法罗列&实操
在上文中,我们讲解了关于Android整体加壳的原理和实际操作,现在我们来针对目前主流的脱壳工具以及流程进行讲解,由于作者能力有限,会尽力的详细描述 整体壳脱壳 的流程及原理,如本文中有任何错误,烦请指正,感谢~
胖虎哥
2023/05/10
3.4K0
【胖虎的逆向之路】03——Android一代壳脱壳办法罗列&实操
阿里开源 Patrons:大型 32 位 Android 应用稳定性提升50%的“黑科技”
作者 | 刘志龙(花名 正纬) 阿里巴巴高级无线开发专家 10x04 背景 截止到目前,国内的大部分 Android 应用仍然是 32 位架构,特征是仅提供了 armeabi/armeabi-v7a 架构的动态库。Android 系统在启动此类应用的时候,会使用 32 位的 Zygote 进程孵化应用,让整个应用运行在 32 位兼容模式。虽然 Android 早在 5.0 版本就已经支持 64 位 CPU,但多年以来,大部分国内应用仍然运行在 32 位兼容模式。早在 2019 年 1 月,Google Pl
深度学习与Python
2023/04/01
8270
阿里开源 Patrons:大型 32 位 Android 应用稳定性提升50%的“黑科技”
NDK--so插件化原理,hook技术实现andfix热修复
1.首先介绍so插件化原理,也就是hook,先研究一个问题:当我们知道so库中的函数名和参数时,如何调用so中的函数?
aruba
2020/07/03
1.3K0
NDK--so插件化原理,hook技术实现andfix热修复
推荐阅读
【Android 逆向】Android 中常用的 so 动态库 ( 拷贝 /system/lib/ 中的 Android 系统 so 动态库 )
2.2K0
【Android 逆向】Android 中常用的 so 动态库 ( libm.so 数学函数动态库 | liblog.so 日志模块动态库 | libselinux.so 安全模块动态库 )
1.4K0
Android远程调试的探索与实现
2.1K0
【Android 逆向】Android 中常用的 so 动态库 ( /system/lib/libc.so 动态库 | libc++.so 动态库 | libstdc++.so 动态库 )
2.7K0
Android系统启动——4 zyogte进程 (C篇)
2.9K0
Android逆向分析大全
3.6K0
Frida Internal - Part 3: Java Bridge 与 ART hook
1.7K0
如何调试Android Native Framework
3.8K0
【Android NDK 开发】NDK C/C++ 代码崩溃调试 - Tombstone 报错信息日志文件分析 ( 使用 addr2line 命令行工具查找动态库中的报错代码位置 )
1.3K0
如何识别C++编译以后的函数名
2.6K0
android之ART虚拟机和DVM虚拟机
1.1K0
深入Android源码系列(一)
2.3K0
Dalvik,ART与ODEX简析
1.6K0
Android Handler机制 – MessageQueue如何处理消息
7390
【Android NDK 开发】NDK C/C++ 代码崩溃调试 - Tombstone 报错信息日志文件分析 ( 获取 tombstone_0X 崩溃日志信息 )
1.4K0
【Android 安装包优化】APK 打包流程 ( 文件结构 | 打包流程 | 安装流程 | 安卓虚拟机 )
1.4K0
Android Framework中的Application Framework层介绍「建议收藏」
2.9K0
【胖虎的逆向之路】03——Android一代壳脱壳办法罗列&实操
3.4K0
阿里开源 Patrons:大型 32 位 Android 应用稳定性提升50%的“黑科技”
8270
NDK--so插件化原理,hook技术实现andfix热修复
1.3K0
相关推荐
【Android 逆向】Android 中常用的 so 动态库 ( 拷贝 /system/lib/ 中的 Android 系统 so 动态库 )
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验