RELRO,堆栈地址随机化, 是一种用于加强对 binary 数据段的保护的技术。

partial relro (部分开启,got 不可写)

full relro(全部开启,got 可写)

那么这是个什么玩意捏

1.基本介绍

堆栈地址随机化:是地址空间布局随机化(ASLR)的一种,它实现了栈帧起始地址一定程度上的随机化,令攻击者难以猜测需要攻击位置的地址。

地址空间布局随机化(ASLR):是一种防范内存损坏漏洞被利用的计算机安全技术。详细一点,就是地址空间配置随机加载是一种针对缓冲区溢出的安全保护技术,通过对堆、栈、共享库映射等线性区布局的随机化,增加攻击者预测目的地址的难度,防止攻击者直接定位攻击代码位置,达到阻止溢出攻击的一种技术。

binary: sql 中固定长度的 n 个字节二进制数据。N 必须从 1 到 8,000。存储空间大小为 n+4 字节。 在此代表二进制

SQL:结构化查询语言,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统,这里不做过多介绍。

GOT:Global Offset Table,全局偏移表/全局函数表,每一个外部定义的符号在这里有相应的条目,GOT位于ELF(一种用于二进制文件 、可执行文件、目标代码、共享库和核心转储格式文件的文件格式)的数据段中,叫做GOT段。

全局函数:定义在类外的函数,可以被其他文件内的函数调用。

PLT:Precedure Linkage Table,过程链接表/内部函数表,linux里的延迟绑定技术,顾名思义它就是一个过度,真正的终点还是在GOT表里。

内部函数:只能被本文件中其他函数所调用,定义内部函数时,在函数名和函数类型的前面加static。

那么这里可能会有疑问:为什么要存在PLT,存在过度,而不是直接到达GOT呢?

这就比如说,你是一个有很多亲戚的人,你每周都需要拜访这些亲戚,所以你将这些亲戚的地址都记在了一个本子上,等你要去拜访的时候就翻出来查找,那么这个本子就是一个PLT表,它里面每一个地址都会跳转到对应的GOT表地址(你的亲戚家)

假如有一天,你觉得每天跑来跑去好麻烦,于是把你所有亲戚全都接到了你家里住,每周只要到对应的房间去拜访就可以了,那个本子也就没用了,你扔掉了它。这时,就是在没有PLT表的情况下,直接把GOT表弄来了。

你觉得是一个登记本占地面积小,还是一屋子亲戚占地面积小呢。

这就是PLT表存在的原因之一,为了更高效的利用内存。

另一个原因就是可以增加安全性。

GOT可写:说明对GOT表具有写权限。

不可写就是没权限呗

(GOT覆写放下章了)

手动分割线

介绍完了,后面会出(二)实战

RELRO (ReLocation Read-Only)保护纯新手入门(一)相关推荐

  1. 纯新手入门机器/深度学习自学指南(附一个月速成方案)

    原作:Masum Hasan 问耕 编译整理 量子位 出品 | 公众号 QbitAI 怎么入门机器/深度学习? 回答这个问题,最先要考虑的问题是:你有多少时间? 准备用三个月入门,和想要一个月速成,肯 ...

  2. Pytorch纯新手入门笔记

    Pytorch入门笔记(推荐配合B站up主我是土堆食用) PyTorch深度学习快速入门教程(绝对通俗易懂!)[小土堆] 视频作者:我是土堆 Pytorch入门 P1 命令行中对anaconda不同环 ...

  3. 【贪玩巴斯】大一暑假自学Linux笔记记录Day4 //纯新手入门基于ubantu

    大家好,我是巴斯,一个平平无奇的大一学生,利用暑假的日子,在家自学Linux,想着发博客来记录,欢迎大家对博客内容提出建议和交流.***B站看的黑马程序员的视频 ☆☆☆☆☆☆☆☆☆☆☆☆☆☆ 今天的内 ...

  4. 新手入门 如何快速找到Python进阶路线?

    新手入门 如何快速找到Python进阶路线?Python作为一种开放源代码的脚本编程语言,常用于开发各种程序.随着近几年人工智能的火爆,Python一度受到众多程序员的追捧,成为首选的入门编程语言.很 ...

  5. mac 删除分区 command r 选择网络_Mac使用必看基础篇,Mac快捷键大全,mac新手入门指南...

    你是Mac新手吗?你对使用Mac电脑有疑问吗?你还不知道mac有哪些快捷键吗?别着急,来看看小编给大家准备的Mac使用必看基础篇--Mac快捷键大全,对于新手用户很有帮助哦!! 一.开机相关命令快捷键 ...

  6. Python 新手入门引导

    这是一篇 Python 入门指南,针对那些没有任何编程经验,从零开始学习 Python 的同学.不管你学习的出发点是兴趣驱动.拓展思维,还是工作需要.想要转行,都可以此文作为一个参考. 在这个信息爆炸 ...

  7. Python学习入门1:Python 新手入门引导

    这是一篇 Python 入门指南,针对那些没有任何编程经验,从零开始学习 Python 的同学.不管你学习的出发点是兴趣驱动.拓展思维,还是工作需要.想要转行,都可以此文作为一个参考. 在这个信息爆炸 ...

  8. android 蒙版图片带拖动_黑橙修图:新手入门篇2-一句话带你认识图层蒙版

    大家好,这里是黑橙修图新手入门教程系列. 上一篇文章我么介绍了ps当中最核心的一个概念--图层.那么这篇文章带大家来了解一个与图层密切相关的概念--图层蒙版. 其实,图层蒙版也是一个类似图层的东西,只 ...

  9. python适合编程语言吗_为什么说python是适合新手入门的编程语言

    原标题:为什么说python是适合新手入门的编程语言 近期,不少小伙伴在咨询达妹,作为编程小白一枚,想学习一Python:不过不知道零基础该从哪里入手?自己看书的话改选什么样的书呢?自学需要多久能学会 ...

最新文章

  1. 图像拼接--Robust image stitching with multiple registrations
  2. shell 命令执行结果判断语句
  3. 160921、React入门教程第一课--从零开始构建项目
  4. 系统优化-----sysctl.conf文件内核设置参数详解
  5. data后缀文件解码_Java语法进阶13-文件、IO流
  6. WINCE 下配置 QT 的方法
  7. numpy 加速 矩阵相加_图解入门 NumPy !
  8. 浅评-我所用的输入法
  9. 16进制颜色与UIColor互转
  10. 雅虎邮箱2022年2月28日起停止中国大陆服务后的收信方法
  11. 易基因|典型案例:MeRIP-seq综合分析肺腺癌中的转录组m6A甲基化组
  12. 第六届北大CIO班结业暨SOA与BPM论坛成功举办
  13. 半导体的光学性质和光电与发光现象
  14. 防治脖子痛的简易保健操
  15. java date dec_java – 将日期从“2009-12 Dec”格式转换为“31-DEC-2009”
  16. html5在线学习系统,Canvas LMS 在线学习管理系统
  17. web常用模块测试用例
  18. 【Kata Daily 190927】Counting sheep...(数绵羊)
  19. 【PS教程】PS照片做旧的方法,证书换照片教程
  20. 基于腾讯x5封源库,提高60%开发效率

热门文章

  1. android实现runnable接口,013 Android多线程-实现Runnable接口
  2. 制作 tusimple 数据集格式的数据
  3. 原神模型(2022全)
  4. ShardingSphere应用专题--4.1.1版本--服务治理(十四)
  5. [trans]关于月亮的诗词
  6. [Unity小项目]俄罗斯方块
  7. iText中使用虚线(表格边框或其他)
  8. 常用 rules 正则校验
  9. html 期末大作业,qx.html
  10. 2022.6.6 特长生模拟