07-ELF文件格式分析
链接视图:elf未加载到内存中时完整的文件结构
执行视图:elf加载到内存中时的文件结构
技术博客,专注于后台开发技术、机器学习、区块链技术、移动安全等。
链接视图:elf未加载到内存中时完整的文件结构
执行视图:elf加载到内存中时的文件结构
深入浅出APK加固原理,并动手实现一个APK加固程序。
本文通过分析Android 4.4版本的源码,了解linker是如何加载并链接SO文件。在阅读本文之前,读者最好阅读有关ELF的文件格式,可以阅读《07-ELF文件结构学习》深入了解ELF的文件结构。
为了更好地理解APK加壳加固原理,我们需要对APP的启动流程进行分析,同时,我们整理提炼几个关键的问题,解决了下面的几个问题,对APP的启动过程理解和后面实战APK加固都很有帮助。
(1)APP启动的大概流程?
(2)该过程中涉及到的比较重要的类、函数,及其之间的关系?
(3)在哪里创建LoadedApk?
(4)在哪里创建类加载器?
(5)哪里加载dex文件
(6)在哪里创建Application对象?
Dalvik查找类和方法的过程。
类加载机制最终的目标就是为目标类生成一个ClassObject的数据结构的实例对象,并将加载了的这个类的ClassObject对象添加到全局变量gDvm的loadedClasses成员中,该成员主要是保存加载到内存中的类对象。