安卓逆向:FART组件主动调用设计与源码深度剖析
需积分: 0 168 浏览量
更新于2024-06-14
收藏 15.83MB DOCX 举报
本文档是一份关于安卓逆向工程的深入学习笔记,重点关注FART(Fast Android Runtime)主动调用组件的设计与源码剖析。FART是Android系统从Dalvik虚拟机切换到ART(Android Runtime)后引入的一种关键技术,它改变了应用程序的执行方式,提高了性能。
首先,文章介绍了如何构造主动调用链。开发者通过`GetDexFile()`方法获取到一个对象,这个过程涉及到了DEX文件的处理。DEX文件是Android应用的编译形式,是Dalvik和ART共同理解的可执行文件。
接下来,作者强调了在ART环境下,尤其是在处理异常处理部分的重要性。在解析代码时,提到`triesSize`在78字节的位置,这是ART异常处理结构的一部分,用于存储try-catch块的信息。例如,0003处的GDA(Global Dictionary Address)解析,这是一种特殊的地址表示,用于高效地存储类信息。
文档中提到了类的列表,其中包含16个字节的固定头部信息,接着是8*3字节的大小信息,这些数据用于确定类的数量。随后,通过`methodindex`索引来找到对应的函数名,这涉及到ClassList的解析,即从已加载的类中获取方法列表。
进一步深入,讲解了如何通过反射机制加载每个类并调用其方法。在这个过程中,作者指出,针对某些壳化后的应用,可能只需要从特定的ClassLoader中取出`pathlist`,这是因为这些应用可能会替换掉系统默认的ClassLoader以隐藏其内部逻辑。
对于ClassLoader的处理,文档提供了两种解决方案:一是直接替换,适用于那些替换掉了系统ClassLoader的应用;二是插入到ClassLoader中间,以控制加载过程,确保只加载预期的类。在解析ClassLoader时,通过反射逐步获取到`mcookie`等关键属性,这对于理解和操作应用的运行环境至关重要。
这篇笔记详细地探讨了安卓逆向工程中的FART组件,涉及了DEX文件的获取、异常处理机制、类和方法的解析、ClassLoader管理以及相关的源码技术。对于Android开发者和逆向工程师来说,这是一个深入理解ART运行机制和调试优化策略的重要参考资料。
2024-03-31 上传
2024-03-25 上传
2024-03-29 上传
165 浏览量
114 浏览量
147 浏览量
222 浏览量
165 浏览量
133 浏览量
m0bi1e
- 粉丝: 4
- 资源: 67
最新资源
- 电路板级的电磁兼容设计
- 计算机常用术语英汉互译
- Oracle 程序员开发指南
- 开发项目管理PPT,Project+Management+Of+RD
- Hacker Defender ROOKIT木马检测工具源码
- 3DGame.pdf
- ARM GEC2410实战手册
- 2 小时玩转 iptables 企业版 v1.5.4
- Apache2_httpd.conf_中文版
- Oracle DBA 心得
- Lucene in Action 中文版(PDF)
- IBM首席技术专家选择智慧的地球-IBM中国研究院院长李实恭博士
- JSF快速入门,简单应用
- Java的验证表单大全。
- GDB使用手册,初学者使用
- ajax开发简略,ajax的简略介绍及说明。