Android Run Time ( ART )
本专栏包括我自己原创,或者翻译/转载的关于Android Run Time方面的优秀技术文章。
Omni-Space
专注Android, Mobile Security and AI
展开
-
From Android ART (binary-only) to DEX? Yes, we can!™ (kinda)
This is a write-up for the 0ctf 2016 quals "State of the ART" mobile/Android challenge worth 5 points. We (Shellphish) were one of the only three teams that solved it, and since I haven't seen a转载 2016-03-20 13:30:09 · 897 阅读 · 0 评论 -
无需Root也能使用Xposed!
Xposed是Android系统上久负盛名的一个框架,它给了普通用户任意 DIY 系统的能力;比如典型的微信防撤回、自动抢红包、修改主题字体,以及模拟位置等等等等。不过,使用Xposed的前提条件之一就是需要Root。随着Android系统的演进,这一条件达成越来越难了;那么,能不能不用Root就可以享用Xposed的功能呢?我们想一下,Xposed为什么需要Root?从现在的实现来看,因为X...转载 2018-01-17 07:28:09 · 24350 阅读 · 2 评论 -
全能Android HOOK框架 JNI NATIVE JAVA ART DALVIK
OneHook目前比较流行的几个安卓HOOK方案,都有功能上的欠缺,有的不支持art模式,有的不支持jni层,有的不支持侵入HOOK。所以OneHook诞生了!这是一个同时支持ART和Dalvik两种模式,理论上支持安卓4.0.3以上所有版本,同时支持JAVA和NATIVE层,使用全局注入技术的侵入式HOOK框架。本框架不需要额外的安装,可以静态编译到自己的APP中转载 2018-01-17 07:06:34 · 4986 阅读 · 0 评论 -
全能HOOK框架 JNI NATIVE JAVA ART DALVIK
OneHook目前比较流行的几个安卓HOOK方案,都有功能上的欠缺,有的不支持art模式,有的不支持jni层,有的不支持侵入HOOK。所以OneHook诞生了!这是一个同时支持ART和Dalvik两种模式,理论上支持安卓4.0.3以上所有版本,同时支持JAVA和NATIVE层,使用全局注入技术的侵入式HOOK框架。本框架不需要额外的安装,可以静态编译到自己的APP中转载 2017-06-29 14:46:29 · 3158 阅读 · 0 评论 -
ART深度探索开篇:从Method Hook谈起
Android上的热修复框架 AndFix 想必已经是耳熟能详,它的原理实际上很简单:方法替换——Java层的每一个方法在虚拟机实现里面都对应着一个ArtMethod的结构体,只要把原方法的结构体内容替换成新的结构体的内容,在调用原方法的时候,真正执行的指令会是新方法的指令;这样就能实现热修复,详细代码见 AndFix。为什么可以这么做呢?那得从 Android 虚拟机的方法调用过程说起。转载 2017-06-16 06:59:18 · 3890 阅读 · 0 评论 -
Android N混合编译与对热补丁影响深度解析
大约在六月底,Tinker在微信全量上线了一个补丁版本,随即华为反馈在Android N上微信无法启动。冷汗冒一地,Android N又搞了什么东东?为什么与instant run保持一致的补丁方式也跪了?talk is cheap,show me the code。趁着台风妮妲肆虐广东,终于有时间总结一把。在此非常感谢华为工程师谢小灵与胡海亮的帮助,事实上微信与各大厂商都保持着非常紧密的联系。转载 2017-01-07 03:01:54 · 5660 阅读 · 1 评论 -
Android5.1.1源码 - 让某个APP以解释执行模式运行
[实践] Android5.1.1源码 - 让某个APP以解释执行模式运行@(Android研究)[Android5.1.1|APP解释执行]前言本文的实践修改了Android5.1.1的源码。本文只简单的讲了一下原理。在“实践”一节讲了具体做法。本文的内容涉及Art模式下dex加载的知识,想要详细了解这部分知识可以去看老罗的文章: Android运行时ART简要介绍和学习计划转载 2016-09-29 14:38:43 · 1209 阅读 · 0 评论 -
android6.0源码分析之Runtime的初始化
Android运行时作为android架构的一部分,起着非常重要的作用,它和核心库(Core Libraries)组成了Android运行时库层。本文将依据android源码对AndroidRuntime(android运行时)的建立过程进行分析。1、Android架构中的AndroidRuntimeandroid采用的是层次化系统架构,它的架构图如下: 由架构图可知转载 2016-09-17 04:41:21 · 902 阅读 · 0 评论 -
理解Android进程创建流程
基于Android 6.0的源码剖析, 分析Android进程是如何一步步创建的,本文涉及到的源码:/frameworks/base/core/java/android/os/Process.java/frameworks/base/core/java/com/android/internal/os/ZygoteInit.java/frameworks/base/core/java转载 2016-07-06 09:08:16 · 1955 阅读 · 1 评论 -
Android JNI原理分析
引言:分析Android源码6.0的过程,一定离不开Java与C/C++代码直接的来回跳转,那么就很有必要掌握JNI,这是链接Java层和Native层的桥梁,本文涉及相关源码:frameworks/base/core/jni/AndroidRuntime.cpplibcore/luni/src/main/java/java/lang/System.javalibcore/lun转载 2016-06-28 09:02:41 · 1236 阅读 · 0 评论 -
Android系统启动-zygote篇
基于Android 6.0的源码剖析, 分析Android启动过程的Zygote进程/frameworks/base/cmds/app_process/App_main.cpp (内含AppRuntime类)/frameworks/base/core/jni/AndroidRuntime.cpp/frameworks/base/core/java/com/android/inter转载 2016-06-28 08:58:15 · 1958 阅读 · 0 评论 -
Android中的ClassLoader与dex文件加密实现分析
Android中的ClassLoaderBaseDexClassLoaderDex类加载器的基类,包含Dex类加载器之间通用功能的实现。DexClassLoaderA class loader that loads classes from .jar and .apk files containing a classes.dex entry. This ca转载 2016-05-04 07:23:45 · 1224 阅读 · 0 评论