全局偏移量表:got(global offset table)进程链接表:plt(Procedure Linkage Table)哈希表:hash table 初始化函数:initialization function 连接编辑器:link editor 目标文件:object file 函数连接表:procedure linkage table 程序头:program header 程序头表:program header table 程序解析器:program interpreter 重定位:relo...
DT_SYMENT a symbol table entry的大小 DT_INIT initialization function的地址 DT_FINI termination function的地址 DT_SONAME 共享库的soname在字符串表中的偏移量 DT_RPATH 库的查找路径在字符串表中的偏移量 DT_SYMBOLIC 指示linker在解析符号地址时,先在本共享库中查找,然后再在可执行文件中查找 DT_REL Rel ...
load_elf_phdrs 加载程序头表 load_elf_phdrs函数就是通过kernel_read读入整个program header table 从函数代码中可以看到,一个可执行程序必须至少有一个段(segment), 而所有段的大小之和不能超过64K。 */ elf_phdata = load_elf_phdrs(&loc->elf_ex, bprm->file); if (!elf_phdata) goto out; /* ...
可执行可连接格式 : ELF(Executable and Linking Format) ELF文件头:ELF header 基地址:base address 动态连接器: dynamic linker 动态连接: dynamic linking 全局偏移量表: got(global offset table) 进程链接表: plt(Procedure Linkage Table) 哈希表: hash table 初始化函数 : initialization function 连接编辑器...
ELF文件由4部分组成,分别是ELF头(ELF header)、程序头表(Program header table)、节(Section)和节头表(Section header table)。实际上,一个文件中不一定包含全部内容,而且它们的位置也未必如同所示这样安排,只有ELF头的位置是固定的,其余各部分的位置、大小等信息由ELF头中的各项值来决定。
Section Header Table中,还有一类SYMTAB(DYNSYM)区,该区叫符号表.符号表中的每个元素对应一个符号,记录了每个符号对应的实际数值信息,通常用在重定位过程中或问题定位过程中,进程执行阶段并不加载符号表.符号表对应鸿蒙源码结构体为 LDElf32Sym. //kernel\extended\dynload\include\los_ld_elf_pri.h /* Symbol t...
* DT_INIT This element holds the address of the initialization function, discussed in ``Initialization and Termination Functions'' below. * DT_FINI This element holds the address of the termination function, discussed in ``Initialization and Termination Functions'' below. * DT_SONAME This element...
*/ DT_INIT DynTag = 12 /* Address of initialization function. */ DT_FINI DynTag = 13 /* Address of finalization function. */ DT_SONAME DynTag = 14 /* String table offset of shared object name. */ DT_RPATH DynTag = 15 /* String table offset of library path. [sup] */ DT_...
We read every piece of feedback, and take your input very seriously. Include my email address so I can be contacted Cancel Submit feedback Saved searches Use saved searches to filter your results more quickly Cancel Create saved search Sign in Sign up Reseting focus {...
load_elf_phdrs 加载程序头表 load_elf_phdrs函数就是通过kernel_read读入整个program header table 从函数代码中可以看到,一个可执行程序必须至少有一个段(segment), 而所有段的大小之和不能超过64K。 */ elf_phdata = load_elf_phdrs(&loc->elf_ex, bprm->file); if (!elf_phdata) goto out; /* ...