免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2195 | 回复: 1
打印 上一主题 下一主题

如何查看GOT的内容? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-04-28 10:37 |只看该作者 |倒序浏览
对动态链接有点好奇。 想要知道怎么查看GOT中的内容 到底对应到动态链接库里的什么东西。

显示plt的内容
(gdb)disassemble 0x804835c
   │0x804835c <sprintf@plt>                 jmp    *0x804a000                                                                                                                                       │
    0x8048362 <sprintf@plt+6>               push   $0x0                                                                                                                                             │
    0x8048367 <sprintf@plt+11>              jmp    0x804834c   

跳转到0x804a000的内容。

(gdb)disassemble 0x804a000
0x8049ff4 <_GLOBAL_OFFSET_TABLE_>       sub    %bl,0x804(%edi)
0x8049ffa <_GLOBAL_OFFSET_TABLE_+6>     add    %al,(%eax)
0x8049ffc <_GLOBAL_OFFSET_TABLE_+8>     add    %al,(%eax)

我就继续显示GOT的内容。
print/x *0x804a000000
$1 = 0x8048362

或者
x/32xw 0x804a000
0x804a000 <_GLOBAL_OFFSET_TABLE_+12>:   0x08048362      0x08048372      0x08048382      0x08048392
0x804a010 <_GLOBAL_OFFSET_TABLE_+28>:   0x080483a2      0x080483b2      0x00000000      0x00000000


但是这个值0x08048362,不在动态链接库的一个地址范围内。

用cat /proc/13181/maps 得到
b7e68000-b7fc4000 r-xp 00000000 08:02 9310676    /lib/i386-linux-gnu/libc-2.13.so
b7fc4000-b7fc6000 r--p 0015c000 08:02 9310676    /lib/i386-linux-gnu/libc-2.13.so
b7fc6000-b7fc7000 rw-p 0015e000 08:02 9310676    /lib/i386-linux-gnu/libc-2.13.so

就是libc在加载的时候映射到的是b7e68000-b7fc4000 这段空间。

网上也有个帖子说这个的,但是他查看到的GOT的内容是在这个地址范围内的
网址如下。
http://web.cs.swarthmore.edu/~newhall/unixhelp/compilecycle.html

论坛徽章:
0
2 [报告]
发表于 2012-05-10 11:52 |只看该作者
擦,没有人知道
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP