栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

.got和.got.plt节有什么区别?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

.got和.got.plt节有什么区别?

我之前的评论是正确的:

我认为这

.got
是有关全局“变量”的重定位,而它
.got.plt
.plt
在解决程序绝对地址时与之配合使用的辅助部分。

下面的示例使事情变得很清楚。

这些是我的32位i686-linux /lib/libm.so的重定位

Relocation section '.rel.dyn' at offset 0x32b8 contains 8 entries: Offset     Info    Type Sym.Value  Sym. Name00025030  00000008 R_386_RELATIVE   00024fd8  00005706 R_386_GLOB_DAT    00025034   _LIB_VERSION00024fdc  00000406 R_386_GLOB_DAT    00000000   __gmon_start__00024fe0  00000506 R_386_GLOB_DAT    00000000   _Jv_RegisterClasses00024fe4  00000806 R_386_GLOB_DAT    00000000   _rtld_global_ro00024fe8  00000906 R_386_GLOB_DAT    00000000   stderr00024fec  00013006 R_386_GLOB_DAT    0002507c   signgam00024ff0  00000e06 R_386_GLOB_DAT    00000000   __cxa_finalizeRelocation section '.rel.plt' at offset 0x32f8 contains 12 entries: Offset     Info    Type Sym.Value  Sym. Name00025000  00000107 R_386_JUMP_SLOT   00000000   fputs00025004  00000207 R_386_JUMP_SLOT   00000000   __errno_location00025008  00000307 R_386_JUMP_SLOT   00000000   sprintf0002500c  00000407 R_386_JUMP_SLOT   00000000   __gmon_start__00025010  00000607 R_386_JUMP_SLOT   00000000   strtod00025014  00000707 R_386_JUMP_SLOT   00000000   __assert_fail00025018  00000a07 R_386_JUMP_SLOT   00000000   strlen0002501c  00000b07 R_386_JUMP_SLOT   00000000   strtof00025020  00000c07 R_386_JUMP_SLOT   00000000   fwrite00025024  00000d07 R_386_JUMP_SLOT   00000000   strtold00025028  00005e07 R_386_JUMP_SLOT   00005970   matherr0002502c  00000e07 R_386_JUMP_SLOT   00000000   __cxa_finalize

就像您指出的那样,请注意有两个重定位部分,即.rel.dyn和.rel.plt。您可以看到.rel.plt的所有重定位类型均为R_386_JUMP_SLOT,这意味着它们是分支重定位,而.rel.dyn中的几乎所有重定位都是R_386_GLOB_DAT,这意味着全局变量的重定位。

.symtab和.dynsym之间存在另一个细微差别。第一个包含对静态链接编辑过程中使用的所有符号的引用,而第二个仅包含动态链接所需的那些符号。因此,上述重定位仅引用.dynsym节。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/391827.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号