elf文件中的.plt .rel.dyn .rel.plt .got .got.p…
2018-06-18 04:20:40来源:未知 阅读 ()
.plt的作用是一个跳板,保存了某个符号在重定位表中的偏移量(用来第一次查找某个符号)和对应的.got.plt的对应的地址
.rel.dyn重定向表,在程序启动时就需要重定位完成。
.rel.plt保存了重定位表的信息,可以使用lazy的连接方式
.got据说是保存了elf文件本身的各个符号的偏移量,即不要动态链接,未证明
.got.plt保存了重定位地址。
比如printf是一个重定位符号,需要连接该符号时过程是这样:
main函数call .plt段中的一个地址,这里的第一句话就是调转到.got.plt中的保存的printf的地址,如果是第一次,那么保存的地址就是.plt中的下一句话,这个下一句话就是压入这个符号在.rel.plt中的重定位表的偏移量,然后ld程序就会根据重定位表中的信息加上这个偏移量找到这个地址,保存到重定位表所指向的地址中,这个地址其实就是.got.plt段的一个地址。
第二次调用时就可以直接获取到.got.plt中保存的地址了。
总之,这个设计让人就觉得很完整,有联系,6666666
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- QT5 解析JSON文件 2020-06-09
- QTableView与Excel之间的文件打开与保存 2020-05-26
- C语言中的宏定义 2020-04-04
- c++中的多态机制 2020-04-04
- Window中的shellcode编写框架(入门篇) 2020-03-31
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash