
elf
wshn13
linux c/cpp/py coder in Kingsoft
展开
-
从程序员角度看ELF
从程序员角度看ELF原文:《 ELF:From The Programmer's Perspective》作者:Hongjiu Lu NYNEX Science & Technology, Inc. 500 Westchester Avenue White Plains, NY 10604, USA 翻译:alert7转载 2012-05-05 11:22:01 · 821 阅读 · 0 评论 -
ELF 文件格式常见段名称及自定义段
除了最常见的为 .text, .data, .bss 这 3 个段之外,还有其它的一些常见段,如下所示:.strtab : String Table 字符串表,用于存储 ELF 文件中用到的各种字符串。.symtab : Symbol Table 符号表,从这里可以所以文件中的各个符号。.shstrtab : 是各个段的名称表,实际上是由各个段的名字组成的一个字符串数组。转载 2012-05-07 09:39:55 · 6454 阅读 · 0 评论 -
gcc与obj文件,动态链接文件和ELF文件
1、obj文件 程序员编写程序,其实就是编写出一个2进制(binary)文件。假如我们声明一个变量char c,也就是声明需要一个8bit的空间,那么就需要向系统声明豫留8bit的空间,怎么做到这一点呢?就是编译一个特殊的2进制文件--obj文件,用gcc编译的C语言得到的执行文件,里面不仅包含CPU指令,还有很多别的信息在里面,它有很多格式COFF、ELF……等等,在最后一道编译过转载 2012-05-07 10:34:20 · 1129 阅读 · 0 评论 -
prelink princeple
预链接(Prelink)利用这一点,修改ELF共享库和二进制文件,将链接信息加入到可执行文件中以简化动态链接重定位,从而使程序启动加快。预链 接首先搜集要预链接的ELF二进制文件及其所依赖的共享库,为每个库分配唯一的虚拟空间位置,并将共享库重新链接到这个基准位置(动态链接器要加载这个库 时,只要虚拟空间地址未被占用,它就会将库映射到指定位置);然后预链接解析二进制或者库中的所有重定位,并将重定位信转载 2012-05-07 15:03:16 · 754 阅读 · 0 评论 -
ELF的GOT和PLT以及PIC
http://zhiwei.li/text/2009/04/elf%E7%9A%84got%E5%92%8Cplt%E4%BB%A5%E5%8F%8Apic/ELF 格式的共享库使用 PIC 技术使代码和数据的引用与地址无关,程序可以被加载到地址空间的任意位置。PIC 在代码中的跳转和分支指令不使用绝对地址。PIC 在 ELF 可执行映像的数据段中建立一个存放所有全局变量指针的全局偏移转载 2012-05-07 11:54:26 · 1026 阅读 · 0 评论