当前位置: 技术问答>linux和unix
ELF文件中节.got 和.got.plt的区别 .rel.plt和.rel.dyn节中一些条目的含义?
来源: 互联网 发布时间:2016-05-05
本文导语: Relocation section '.rel.dyn' at offset 0x270 contains 1 entries: Offset Info Type Sym.Value Sym. Name 08049620 00000106 R_386_GLOB_DAT 00000000 __gmon_start__ Relocation sect...
Relocation section '.rel.dyn' at offset 0x270 contains 1 entries:
Offset Info Type Sym.Value Sym. Name
08049620 00000106 R_386_GLOB_DAT 00000000 __gmon_start__
Relocation section '.rel.plt' at offset 0x278 contains 3 entries:
Offset Info Type Sym.Value Sym. Name
08049630 00000107 R_386_JUMP_SLOT 00000000 __gmon_start__
08049634 00000207 R_386_JUMP_SLOT 00000000 __libc_start_main
08049638 00000307 R_386_JUMP_SLOT 00000000 puts
1 __gmon_start__ 为什么有两个 都是什么意思?
2 .rel.dyn 和.rel.plt 有什么不同
3 R_386_GLOB_DAT 是什么意思 我看了手册 还是不能理解。。。能不能举个例子
请教高手~~
|
只是看懂了一点,你自己参考下:
1、http://gcc.gnu.org/ml/gcc/2005-04/msg01195.html
2,3、http://linux.chinaitlab.com/administer/718821_2.html
1、http://gcc.gnu.org/ml/gcc/2005-04/msg01195.html
2,3、http://linux.chinaitlab.com/administer/718821_2.html
|
GOT和PLT机制相似,里面存放的条目都是相对位置(偏移),但是二者用途不一样。GOT是Global Offset Table,用来实现位置无关代码(PIC: Position Independent Code),里面的条目指向位置本身就在ELF文件中。PLT是Procedure Linkage Table,是用来实现动态链接功能的,就好比Window中的DLL动态链接库,里面的条目并指向的位置不在ELF文件中,而是在系统提供的库里。
|
我也是初学. 我觉得R_386_JUMP_SLOT好想都跟函数有关 通过这些R_386_JUMP_SLOT程序就能找到要用的函数.
08049634 00000207 R_386_JUMP_SLOT 00000000 __libc_start_main 应该是你主函数的地址吧.我猜
而.got
08049620 00000106 R_386_GLOB_DAT 00000000 __gmon_start__
这个是不是指向08049630 00000107 R_386_JUMP_SLOT 00000000 __gmon_start__ 的啊??
也就是说可以是通过.got 来找到.got.plt????
我瞎猜的~~请指正
08049634 00000207 R_386_JUMP_SLOT 00000000 __libc_start_main 应该是你主函数的地址吧.我猜
而.got
08049620 00000106 R_386_GLOB_DAT 00000000 __gmon_start__
这个是不是指向08049630 00000107 R_386_JUMP_SLOT 00000000 __gmon_start__ 的啊??
也就是说可以是通过.got 来找到.got.plt????
我瞎猜的~~请指正
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。