ELF文件中节.got 和.got.plt的区别 .rel.plt和.rel.dyn节中一些条目的含义?

C_program_Baby 2008-11-01 05:45:51

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 是什么意思 我看了手册 还是不能理解。。。能不能举个例子
请教高手~~

...全文
1353 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
土豆 2009-02-04
  • 打赏
  • 举报
回复
GOT和PLT机制相似,里面存放的条目都是相对位置(偏移),但是二者用途不一样。GOT是Global Offset Table,用来实现位置无关代码(PIC: Position Independent Code),里面的条目指向位置本身就在ELF文件中。PLT是Procedure Linkage Table,是用来实现动态链接功能的,就好比Window中的DLL动态链接库,里面的条目并指向的位置不在ELF文件中,而是在系统提供的库里。
leoZ231 2009-02-03
  • 打赏
  • 举报
回复
我也是初学. 我觉得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????
我瞎猜的~~请指正
hngsc_0 2008-11-02
  • 打赏
  • 举报
回复
可以把GOT和PLT理解为一种重定向行为,redirect,GOT 是把位置无关的地址计算redirect到绝对位置去,PLT了就是把位置无关的函数调用redirect到绝对位置去

自己google下
C_program_Baby 2008-11-02
  • 打赏
  • 举报
回复
顶啊!!!
问下
.got 和.got.plt的区别
C_program_Baby 2008-11-02
  • 打赏
  • 举报
回复
这个我知道 但在.got 和.got.plt 这两个都是GOT,想知道两者之间的区别
.got 对应
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__

.got.plt 对应
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

hngsc_0 2008-11-01
  • 打赏
  • 举报
回复

4,438

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧