范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

深入理解GOT表和PLT表

  0x01 前言
  操作系统通常使用动态链接的方法来提高程序运行的效率。在动态链接的情况下,程序加载的时候并不会把链接库中所有函数都一起加载进来,而是程序执行的时候按需加载,如果有函数并没有被调用,那么它就不会在程序生命中被加载进来。这样的设计就能提高程序运行的流畅度,也减少了内存空间。而且现代操作系统不允许修改代码段,只能修改数据段,那么GOT表与PLT表就应运而生。
  0x02 初探GOT表和PLT表
  我们先简单看一个例子
  我们跟进一下scanf@plt
  会发现,有三行代码
  看函数的名字就可以知道这是scanf函数的plt表,先不着急去了解plt是做什么用的,我们继续往下看我们先看一下第一个jmp是什么跳到哪里。
  其实这是plt表对应函数的got表,而且我们会发现0x201020的值是压栈命令的地址,其他地方为0,此时就想问:
  一、got表与plt表有什么意义,为什么要跳来跳去?
  二、got表与plt表有什么联系,有木有什么对应关系?
  那么带着疑问先看答案,再去印证我们要明白操作系统通常使用动态链接的方法来提高程序运行的效率,而且不能回写到代码段上。
  在上面例子中我们可以看到, call scanf —> scanf的plt表 —>scanf的got表 ,至于got表的值暂时先不管,我们此刻可以形成这样一个思维,它能从got表中找到真实的scanf函数供程序加载运行。
  我们这么认为后,那么这就变成了一个间接寻址的过程
  我们就把获取数据段存放函数地址的那一小段代码称为PLT(Procedure Linkage Table)过程链接表存放函数地址的数据段称为GOT(Global Offset Table)全局偏移表。我们形成这么一个思维后,再去仔细理解里面的细节。
  0x03 再探GOT表和PLT表
  已经明白了这么一个大致过程后,我们来看一下这其中是怎么一步一步调用的上面有几个疑点需要去解决:
  一、got表怎么知道scanf函数的真实地址?
  二、got表与plt表的结构是什么?我们先来看plt表刚才发现scanf@plt表低三行代码是 jmp 一个地址 ,跟进看一下是什么
  后面是每个函数的plt表。此时我们再看一下这个神秘的GOT表
  除了这两个(printf和scanf函数的push 0xn的地址,也就是对应的plt表的第二条代码的地址),其它的got[1], got[2] 为0,那么plt表指向为0的got表干什么呢?因为我们落下了一个条件,现代操作系统不允许修改代码段,只能修改数据段,也就是回写,更专业的称谓应该是运行时重定位。我们把程序运行起来,我们之前的地址和保存的内容就变了在这之前,我们先把链接时的内容保存一下,做一个对比
  运行程序,在scanf处下断点
  可以发现,此时scanf@plt表变了,查看got[4]里内容
  此时想问了,这是哪里?
  此时想问了,这是哪里?
  然后就是got[2]中call从而修改got[3]中的地址;
  那么问题就来了,刚才got[2]处不是0吗,怎么现在又是这个(_dl_runtime_resolve)?这就是运行时重定位。
  其实got表的前三项是:
  got[0]:address of .dynamic section 也就是本ELF动态段(.dynamic段)的装载地址
  got[1]:address of link_map object( 编译时填充0)也就是本ELF的link_map数据结构描述符地址,作用:link_map结构,结合.rel.plt段的偏移量,才能真正找到该elf的.rel.plt表项。
  got[2]:address of _dl_runtime_resolve function (编译时填充为0) 也就是_dl_runtime_resolve函数的地址,来得到真正的函数地址,回写到对应的got表位置中。那么此刻,got表怎么知道scanf函数的真实地址?这个问题已经解决了。我们可以看一下其中的装载过程:
  说到这个,可以看到在_dl_runtimw_resolve之前和之后,会将真正的函数地址,也就是glibc运行库中的函数的地址,回写到代码段,就是got[n](n>=3)中。
  也就是说在函数第一次调用时,才通过连接器动态解析并加载到.got.plt中,而这个过程称之为 延时加载 或者 惰性加载 。
  到这里,也要接近尾声了,当第二次调用同一个函数的时候,就不会与第一次一样那么麻烦了,因为got[n]中已经有了真实地址,直接jmp该地址即可。
  0x04 尾记
  只是个人的见解,如有错误,希望各位大佬指出。
  关联文章
  栈溢出漏洞原理详解与利用
  相关实验--通过write实现信息泄漏( 介绍信息泄露、GOT、PLT等相关概念,着重讲解信息泄露在缓冲区溢出中的重要作用。 )
  https://www.hetianlab.com/expc.do?ec=ECID172.19.104.182015111814115000001&pk_campaign=toutiao-wemedia

最具性价比的手机推荐1。红米note10pro红米note10pro目前售价1699,天玑1100的处理器,跑分高达60多w分,差不多就是晓龙865的水平,还拥有120hz的高刷,玩任何游戏都没有压力换用4nm一样热,消息称高通骁龙895样品性能可提升20IT之家8月12日消息此前爆料大神evleaks放出了高通骁龙888继任者(产品代号SM8450,暂称895)芯片的详细情报。据悉,这款旗舰平台将基于4nm工艺打造,然而业界对代工去中心化电商潮流下有赞悦商为代表的SaaS服务商大有可为随着近年来互联网行业的高速发展,我国的互联网已经进入了下半场。如果说互联网上半场靠流量竟争的时代已经过去了,那下半场的要靠什么来制胜呢?互联网上半场的玩法,实际上是对流量的争夺,谁新品上市雷神电竞小金刚到手1999元绝对实力斩获CJ黑金奖在前不久闭幕的ChinaJoy展会上,雷神品牌携一众电竞新品亮相。其中雷神银翼电竞显示器作为今年雷神显示器的主打系列,凭借其出色的显示效果顺滑的动效展现以及时尚科幻的外观,在展会上开学季轻薄本绝佳选择,宏碁非凡S3性能与颜值齐飞暑期转瞬过半,学生也将步入校园开启全新的学习生活。今夏最受人瞩目的轻薄笔记本宏碁非凡S3凭借其高性能及高颜值帮助学生轻松切换学习与生活场景,成为广大学子的最佳选择。非凡S3通过英特美团上线饭小圈,然而社交却并非万能灵药如今,互联网企业最头痛的问题是什么?摆在首位,无疑是新的流量从哪里来。当下沉市场的五环外人群被拼多多快手趣头条等接入到互联网后,也意味着此前二十余年习以为常的增量时代,将转而进入挖7月新能源销量排名!第一名依旧很稳,特斯拉惨遭暴跌日前,乘联会发布了今年7月份全国乘用车产销数据。下面我们先来看看,7份销量最好的新能源车都有哪些?从表格中可以看到,国民神车五菱宏光MINIEV销量为30706,高居第一,将其它车电动车解码改装锂改铅屡禁不止,新国标电动车到底得罪了谁?请您在阅读前,先点击上面的关注。感谢您的支持,我们将为您带来更多有价值的内容。新能源战略家问大家三个买车问题。为什么大家放着好好的新国标电动车不买,宁愿买二手车?为什么宁愿骑超标车美英特尔得手了?ASML的离开,对台积电产生2大影响一度濒临破产倒闭的荷兰ASML公司,得益于台积电等代工厂商的不断投资,最终摆脱了破产倒闭的困境,并且依靠EUV光刻机占领了国际中高端市场。在芯片制造方面,荷兰ASML公司与台积电是荣耀发布年度旗舰Magic3,售价4599元起丨钛快讯荣耀Magic3至臻版钛媒体8月13日消息,荣耀Magic3系列新品正式发布,包括荣耀Magic3荣耀Magic3Pro荣耀Magic3至臻版三款机型。荣耀Magic3系列以蕴含东比亚迪否认会向特斯拉提供刀片式电池,但双方有可能携手合作吗?最近,比亚迪品牌澄清没有向特斯拉提供刀片电池,也未表示刀片电池将用于ModelY。此前有消息称比亚迪将在明年二季度向特斯拉正式提供刀片电池,并且相关车型已经进入C样测试阶段系谣言。
华为入局千元平板电脑市场,10。1英寸鸿蒙OS2首发到手价1299在4月28号的华为新品发布会上,让小编极为惊讶的是华为发布了比折叠屏旗舰更有购买欲的产品华为MatePadSE,这是一款迄今为止预装华为HarmonyOS系统售价最低的产品。该款平欧盟法院判决无用户授权,消费者组织仍可提起GDPR诉讼近日,一份涉及Facebook的判决在欧盟引发关注。欧盟法院宣布,只要该国法律允许,消费者保护协会可根据通用数据保护条例(GDPR)提起诉讼,即使未事先获得数据主体授权。据悉,该判又有俄罗斯将军阵亡!为何普京把重心从战争转向了打虎?打仗阵亡将领是正常的事。不过,乌克兰的情报怎么那么准?这令普京不得不思考,核心是内部不提供有价值的线索对方不会那么精准,得从内部挖出叛徒或叫内奸,俗话好哇,家贼难防,偷断屋梁。所以港股异动快手W(01024。HK)午后急升近10中共中央政治局称将出台支持平台经济规范健康发展的具体措施快手W(01024。HK)午后涨幅扩大近10,截至,13时36分,涨5。22,报价64。45港元,成交额18。09亿。快手W(01024。HK)公司简介快手科技是一家主要运营内容社港股直线拉升,阿里腾讯爆发,恒生互联网ETF(513330)火箭涨停金融界4月29日消息,下午开盘后,恒指继续拉升,其中科网股大涨,截至110,恒生互联网科技业指数涨近12,阿里巴巴京东集团美团等均上涨超15腾讯控股涨超10。恒生互联网ETF(51冰箱哪个品牌好?冰箱哪个品牌好,换个思路,就是哪个品牌的性价比更高。市场上的主流品牌有海尔卡萨帝容声美的海信西门子博世松下,我对这八个品牌的上下三开门冰箱以及十字对开门冰箱按照下图的因素进行了具体晶澳科技一季度净利同比增长378。27晶澳科技一季度净利同比增长378。27财联社4月29日电,晶澳科技公告,2022年一季度实现营业收入123。21亿元,同比增长77。12净利润7。5亿元,同比增长378。27。报告掌阅科技2022年一季度亏损1497。63万元北京商报讯(记者郑蕊)4月29日,掌阅科技发布2022年第一季度报告。报告期内,掌阅科技实现营业收入5。2亿元,同比减少6。06,归属于上市公司股东的净利润为亏损1497。63万元特斯拉车主的离奇遭遇说明用户是没有任何隐私的特斯拉自动播放惊悚女声吓坏车主特斯拉女车主的离奇遭遇说明了特斯拉车主是完全没有任何隐私的!后台监控车辆速度油门踩踏,刹车踩踏动作或者电池组,电机工作情况都还可以理解,为什么连用户中马斯克440亿强势收购Twitter,为他商业雄心增加强劲的传媒版图马斯克作为1971年出生于南非的美国人,在宾夕法尼亚大学分别获得经济学和物理学双学位之后,陆续也非常成功的创业了几家公司,其中就有著名的paypal支付公司。然后从2002年开始涉美担心的事还是发生,14家芯片巨头联合出手,EUV光刻机要被抛弃芯片生产制造离不开光刻机,而在这方面,阿斯麦的技术是最先进的,它制造的EUV光刻机和DUV光刻机几乎垄断了全球市场,但由于老美修改规则,阿斯麦不能自由出货。即使EUV光刻机可以自由