【Android 逆向】ART 脱壳 ( dex2oat 脱壳 | aosp 中搜索 dex2oat 源码 | dex2oat.cc#main 主函数源码 )

简介: 【Android 逆向】ART 脱壳 ( dex2oat 脱壳 | aosp 中搜索 dex2oat 源码 | dex2oat.cc#main 主函数源码 )

文章目录

前言

一、搜索 dex2oat 源码

二、dex2oat.cc#main 主函数源码

前言

在 【Android 逆向】ART 脱壳 ( DexClassLoader 脱壳 | exec_utils.cc 中执行 Dex 编译为 Oat 文件的 Exec 和 ExecAndReturnC函数 ) 博客中 , 将 dex 文件编译为 oat 文件 , 编译过程是由 dex2oat 可执行程序完成的 , 这是一个有 main 函数的可执行程序 ;






一、搜索 dex2oat 源码


进入源码搜索页面 http://aospxref.com/android-8.0.0_r36/ ,


" Project " 中 选中所有的模块 , 在 " Full Search " 中 , 搜索 " dex2oat " , 即可搜索出相关的源码 ;


AOSP 搜索方法 : 此处可以搜索可以选择 声明 Definition , 变量或字符串 Symbol , 文件路径 File Path , 历史 History , 类型 Type 等搜索类型 , 选择 " Full Search " 可以以所有搜索类型为依据 ;


此处搜索出的 dex2oat 源码路径是 /art/dex2oat/dex2oat.cc ;


image.png






二、dex2oat.cc#main 主函数源码


dex2oat.cc#main 主函数中 , 调用了 art::Dex2oat 方法 , 执行 oat 文件编译操作 ;



dex2oat.cc#main 主函数源码 :


int main(int argc, char** argv) {
  int result = static_cast<int>(art::Dex2oat(argc, argv));
  // 一切都已完成,请在此处显式退出,以避免运行占用时间的运行时析构函数
  // 时间(bug 10645725),除非我们是调试版本或在valgrind上运行。注:Dex2Oat类
  // 在这种情况下,不应破坏运行时。
  if (!art::kIsDebugBuild && (RUNNING_ON_MEMORY_TOOL == 0)) {
    _exit(result);
  }
  return result;
}


源码路径 : /art/dex2oat/dex2oat.cc#main


目录
相关文章
|
9月前
|
Android开发
Android项目中运行main方法,进行测试,配置方法
Android项目中运行main方法,进行测试,配置方法
133 0
|
10月前
|
Android开发
Android 开发引用 okio 依赖之后无法运行main方法的坑
Android 开发引用 okio 依赖之后无法运行main方法的坑
75 1
|
Ubuntu Java 机器人
Android AOSP入门之环境搭建
最近在做移动机器人项目,要给机器人做一个头台,搭载Android操作系统,要为系统做一些定制。在 好多年前,还是Android 5.0以下系统的时候做游戏画面采集做个AOSP的编译,那个时候电脑配置查,网络也差,搭建一次环境特别费劲。编译完还没有现成的设备可以给刷,一直也没有真正的framework和内核、驱动层的开发经验,现在有了实际的需求了,硬着头皮开搞。
547 0
|
Java Android开发 数据安全/隐私保护
android10.0(Q) AOSP 增加应用锁功能
android10.0(Q) AOSP 增加应用锁功能
138 0
|
缓存 Java Android开发
Android Studio无法执行Java main方法的问题
Android Studio无法执行Java main方法的问题
|
存储 安全 IDE
android studio 输出apk过程,apk中的文件格式(bsh文件,dex文件),JVM、DVM、ART的区别,IOS与安卓的区别,ART和Dalvi
android studio 输出apk过程,apk中的文件格式(bsh文件,dex文件),JVM、DVM、ART的区别,IOS与安卓的区别,ART和Dalvi
217 0
android studio 输出apk过程,apk中的文件格式(bsh文件,dex文件),JVM、DVM、ART的区别,IOS与安卓的区别,ART和Dalvi
|
JavaScript Shell 开发工具
Window10 下载AOSP(Android源码) 亲测有效
Window10 下载AOSP(Android源码) 亲测有效
559 0
Window10 下载AOSP(Android源码) 亲测有效
|
Android开发 Kotlin
【Kotlin 初学者】Android Studio 运行 main 函数报错解决
目录 Andorid Studio 运行 main 函数报错: Gradle构建问题 New Project问题 运行成功 IntelliJ IDEA 其他问题 kotlin-gradle-plugin Failed to find Build Tools revision 31.0.0 解决方案1:移除buildToolsVersion版本 解决方案2:降低buildToolsVersion
445 0
【Kotlin 初学者】Android Studio 运行 main 函数报错解决
|
缓存 监控 安全
❤️Android Runtime (ART) 和 Dalvik❤️
目录 1. Dalvik 1.1 Dalvik 和 JVM 区别 1.2 Dalvik 如何运行 java 1.3 dex文件 1.4 65535 2. Android Runtime (ART) 2.1 ART 功能 2.1.1 预先 (AOT) 编译 2.1.2 垃圾回收方面的优化 2.1.3 开发和调试方面的优化 2.2 Android 8.0 中的 ART 功能改进 2.2.1 并发压缩式垃圾回收器 2.2.2 循环优化 2.2.3 类层次结构分析 2.2.4 .oat 文件中的内嵌缓存 2.2.5 Dexlayout 2.2.6 Dex 缓存移除
415 0
❤️Android Runtime (ART) 和 Dalvik❤️