- 1、本文档共94页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章 程序的链接目标文件格式符号解析与重定位共享库与动态链接;可执行文件的链接生成;程序的链接;一个典型程序的转换处理过程;;;使用链接的好处;一个C语言程序举例;可执行文件的生成;链接过程的本质;目标文件;可执行文件的存储器映像;链接操作的步骤;链接操作的步骤;三类目标文件 ;目标文件的格式;Executable and Linkable Format (ELF);链接视图—可重定位目标文件;可重定位目标文件格式; switch-case语句举例;ELF头(ELF Header);ELF头信息举例;节头表(Section Header Table);节头表信息举例;节头表信息举例;执行视图—可执行目标文件;可执行目标文件格式;ELF头信息举例;可执行文件的存储器映像;可执行文件中的程序头表;可执行文件中的程序头表;可执行文件的存储器映像;程序的链接;符号和符号解析;符号和符号解析;目标文件中的符号表;目标文件中的符号表;符号解析(Symbol Resolution);全局符号的符号解析;全局符号的符号解析;链接器对符号的解析规则;多重定义符号的解析举例;多重定义符号的解析举例;多重定义符号的解析举例;多重定义符号的解析举例;多重定义全局符号的问题;如何划分模块?;静态共享库;静态库的创建;常用静态库;自定义一个静态库文件;链接器中符号解析的全过程 ;链接器中符号解析的全过程 ;链接器中符号解析的全过程 ;使用静态库;链接顺序问题;链接操作的步骤;目标文件;重定位;重定位信息;重定位操作举例;重定位操作举例;符号引用的地址需要重定位;int buf[2]={1,2};
int main()
{
swap();
return 0;
} ;main.o中的符号表;R_386_PC32的重定位方式;确定定义符号的地址;R_386_32的重定位方式;swap.o中的符号表;R_386_32的重定位方式;swap.o重定位;swap.o重定位main:
8048380: 55 push %ebp
8048381: 89 e5 mov %esp,%ebp
8048383: 83 e4 f0 and $0xfffffff0,%esp
8048386: e8 09 00 00 00 call 8048394 swap
804838b: b8 00 00 00 00 mov $0x0,%eax
8048390: c9 leave
8048391: c3 ret
8048392: 90 nop
8048393: 90 nop;可执行文件的存储器映像;回顾:可执行文件中的程序头表;程序头(段头)表的信息;可执行文件的加载;ELF文件信息举例;程序的链接;动态链接的共享库(Shared Libraries) ;共享库(Shared Libraries);自定义一个动态共享库文件;加载时动态链接 ;加载时动态链接;运行时动态链接;位置无关代码(PIC);(1) 模块内部函数调用或跳转;(2) 模块内部数据引用;(3) 模块外数据的引用;(4) 模块间调用、跳转;方法二:延迟绑定
GOT是.data节一部分,开始三项固定,含义如下:
GOT[0]为.dynamic节首址,该节中包含动态链接器所需要
的基本信息,如符号表位置、重定位表位置等;
GOT[1]为动态链接器的标识信息
GOT[2]为动态链接器延迟绑定代码的入口地址
调用的共享库函数都有GOT项,如GOT[3]对应ext
PLT是.text节一部分,结构数组,每项16B,除PLT[0]
外,其余项各对应一个共享库函数,如PLT[1]对应ext
PLT[0]
0804833c: ff 35 88 95 04 08 pushl 0x8049588
8048342: ff 25 8c 95 04 08 jmp *0x804958c
8048348: 00 00 00 00
PLT[1] ext 用 ID=0 标识ext()函数
0804834c: ff 25 90 95 04 08 jmp *0x8049590
8048352: 68 00 00 00 00 pushl $0x0
8048357: e9 e0 ff ff ff
您可能关注的文档
- 第八章BYDS8空调系统维修手册讲述.doc
- 第四章游泳救生的赴救技术详解.ppt
- 第八章-可编程器件讲述.ppt
- 第四节乳剂详解.pptx
- 第四节世界的气候详解.ppt
- 第八章_信息传递与信息风险控制讲述.ppt
- 第四章中央处理器教案详解.doc
- 第八章-约束混凝土讲述.ppt
- 第八章PN结二极管讲述.ppt
- 第四节圆周运动(动画版)详解.ppt
- 2023-2024学年广东省深圳市龙岗区高二(上)期末物理试卷(含答案).pdf
- 2023-2024学年贵州省贵阳市普通中学高一(下)期末物理试卷(含答案).pdf
- 21.《大自然的声音》课件(共45张PPT).pptx
- 2023年江西省吉安市吉安县小升初数学试卷(含答案).pdf
- 2024-2025学年广东省清远市九校联考高一(上)期中物理试卷(含答案).pdf
- 广东省珠海市六校联考2024-2025学年高二上学期11月期中考试语文试题.pdf
- 2024-2025学年语文六年级上册第4单元-单元素养测试(含答案).pdf
- 2024-2025学年重庆八中高三(上)月考物理试卷(10月份)(含答案).pdf
- 安徽省安庆市潜山市北片学校联考2024-2025学年七年级上学期期中生物学试题(含答案).pdf
- 贵州省部分校2024-2025学年九年级上学期期中联考数学试题(含答案).pdf
文档评论(0)