【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


目录
相关文章
|
3月前
|
开发工具 uml git
AOSP源码下载方法,解决repo sync错误:android-13.0.0_r82
本文分享了下载AOSP源码的方法,包括如何使用repo工具和处理常见的repo sync错误,以及配置Python环境以确保顺利同步特定版本的AOSP代码。
466 0
AOSP源码下载方法,解决repo sync错误:android-13.0.0_r82
|
3月前
|
Java Android开发 芯片
使用Android Studio导入Android源码:基于全志H713 AOSP,方便解决编译、编码问题
本文介绍了如何将基于全志H713芯片的AOSP Android源码导入Android Studio以解决编译和编码问题,通过操作步骤的详细说明,展示了在Android Studio中利用代码提示和补全功能快速定位并修复编译错误的方法。
139 0
使用Android Studio导入Android源码:基于全志H713 AOSP,方便解决编译、编码问题
|
3月前
|
开发工具 Android开发 git
全志H713 Android 11 :给AOSP源码,新增一个Product
本文介绍了在全志H713 Android 11平台上新增名为myboard的产品的步骤,包括创建新的device目录、编辑配置文件、新增内核配置、记录差异列表以及编译kernel和Android系统的详细过程。
120 0
|
3月前
|
Ubuntu 开发工具 Android开发
Repo下载、编译AOSP源码:基于Ubuntu 21.04,android-12.1.0_r27
文章记录了作者在Ubuntu 21.04服务器上配置环境、下载并编译基于Android 12.1.0_r27版本的AOSP源码的过程,包括解决编译过程中遇到的问题和错误处理方法。
198 0
|
缓存 Java Android开发
Android上的ART虚拟机
本会讲解Android上的ART虚拟机。 我的博客中,还有另外两篇关于Android虚拟机的文章也可以配套阅读: * [Android上的Dalvik虚拟机](https://paul.pub/android-dalvik-vm/) * [Android上ART虚拟机](https://paul.
7078 0
|
算法 Java Android开发
Android热修复技术初探(一):了解Dalvik与Art虚拟机
1. 为什么需要热修复技术 当我们的Android应用程序发布到各大市场上之后,如果出现了重大bug,大部分情况下只能通过紧急发包升级来解决问题,但是这会带来以下几个问题: 应用升级需要一定的时间,时效性差,如iOS应用发布审核可能需要好几天; 需要...
1661 0
|
4天前
|
开发框架 前端开发 Android开发
安卓与iOS开发中的跨平台策略
在移动应用开发的战场上,安卓和iOS两大阵营各据一方。随着技术的演进,跨平台开发框架成为开发者的新宠,旨在实现一次编码、多平台部署的梦想。本文将探讨跨平台开发的优势与挑战,并分享实用的开发技巧,帮助开发者在安卓和iOS的世界中游刃有余。
|
10天前
|
搜索推荐 Android开发 开发者
探索安卓开发中的自定义视图:打造个性化UI组件
【10月更文挑战第39天】在安卓开发的世界中,自定义视图是实现独特界面设计的关键。本文将引导你理解自定义视图的概念、创建流程,以及如何通过它们增强应用的用户体验。我们将从基础出发,逐步深入,最终让你能够自信地设计和实现专属的UI组件。
|
11天前
|
Android开发 Swift iOS开发
探索安卓与iOS开发的差异和挑战
【10月更文挑战第37天】在移动应用开发的广阔舞台上,安卓和iOS这两大操作系统扮演着主角。它们各自拥有独特的特性、优势以及面临的开发挑战。本文将深入探讨这两个平台在开发过程中的主要差异,从编程语言到用户界面设计,再到市场分布的不同影响,旨在为开发者提供一个全面的视角,帮助他们更好地理解并应对在不同平台上进行应用开发时可能遇到的难题和机遇。