ELF是类Unix类系统,当然也包括Android系统上的可执行文件格式(也包括.so和.o类文件)。可以理解为Android系统上的exe或者dll文件格式。理解ELF文件规范,是理解Android系统上进程加载、执行的前提。下面我们就来一步步了解这ELF到底是个啥玩意儿(以Arm 32 ELF格式为主)!当然,网上关于ELF的介绍已经非常多,最好的手册还是直接看ELF官方的手册,我这里只是对ELF的文件做个纲领性介绍,然后直奔主题,比如.GOT .PLT或者R_Arm_Jump_Slot,R_Arm_R...
分类:
移动开发 时间:
2014-06-08 05:43:49
阅读次数:
405
8.2.2 操作ELF格式文件的方法
综合以上的描述,总结执行ELF格式文件的方法,步骤如下:
(1)从文件起始位置读取一个struct elf32_ehdr结构体,验证文件的正确性以及文件与操作系统是否匹配。
(2)找到该结构体中e_entry成员,从系统中获得这个值所指向的内存地址。
(3)读出struct elf32_ehdr结构体中的e_phoff、e_phextsize以及e_...
分类:
其他好文 时间:
2014-05-08 00:30:22
阅读次数:
845
8.2.3 运行ELF格式的应用程序
首先我们需要提供一些与ELF格式有关的宏定义。
代码8-7
#define ELFCLASSNONE 0 #define ELFCLASS32 1 #define ELFCLASS64 2 #define CHECK_ELF_CLASS(p) ((p)->e_ident[4]) #define...
分类:
其他好文 时间:
2014-05-08 00:29:22
阅读次数:
465
LF指的是Executable and Linkable Format。最初是由UNIX系统实验室作为应用程序二进制接口开发和发行的,后来逐渐发展成为了可执行文件的格式标准,在很多操作系统和非操作系统环境中都有非常广泛的应用。完整的ELF格式标准涉及了三个方面的内容。在这里我们只需要关心一个方面,那就是一个ELF格式可执行程序的组成结构。
一个ELF可执行文件格式如图8-1所示。
像图8-1那...
分类:
其他好文 时间:
2014-05-08 00:16:58
阅读次数:
367