pwn学习日记Day17 《程序员的自我修养》读书笔记

静态链接章小结

本章首先学习了静态链接的第一步骤,即目标文件在被链接成最终可执行文件时,输入目标文件中的各段是如何被合并到输出文件中的,链接器如何为它们分配在输出文件中的空间和地址。一旦输入段中的最终地址被确定,接下来就可以进行符号解析与重定位,链接器会把各个输入目标文件中对外部符号的引用进行解析,把每个段中须重定位的指令和数据进行“修补”,使它们都指向正确的位置。
本章还对几个静态链接中的问题进行了分析,比如为什么未初始化的全局/静态变量要使用COMMON块,C++会对链接器和目标文件有什么样的要求、如何使用脚本控制链接过程使得输出的可执行文件能够满足某些特殊的需求,比如不使用默认C语言运行库的程序,运行于嵌入式系统的程序,甚至是操作系统内核、驱动程序。

posted @ 2019-05-13 21:23  PwnKi  阅读(232)  评论(0编辑  收藏  举报