linux 链接 got plt,linux的plt表和got表在pwn中的利用

什么是PLT表?

PLT表(Procedure Link Table)是由代码片段组成的,每个代码片段都跳到GOT表中的一个具体的函数调用,进程链接表。

什么是GOT表?

GOT表(Global Offset Table)是一个存储外部库函数的表,全局偏移表。

PLT表和GOT表的关系

PLT表中的数据就是GOT表中的一个地址。

每一个PLT表的每一项都是对应相应的GOT表的每一项地址。

PLT表中的数据不是函数的真实地址,而是GOT表的地址,GOT表中的数据才是函数的真实地址。

通过PLT表T跳转到GOT表就可得到真实的函数地址。

如何利用PLT表和GOT表?

PLT表作为中间表链接call命令和GOT表,GOT表存的是函数的真实地址。

在一些pwn题中,要泄露出的目的函数地址一般是GOT表的内容,为了泄露出目的函数真实地址,往往需要用到read、write、put等函数,

通过这些已知的同时存在GOT表和libc中的函数地址,可以得出偏移量,然后通过偏移量就可以计算找到system(‘/bin/sh’)的真实地址。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值