RELRO (ReLocation Read-Only)保护纯新手入门(一)
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)保护纯新手入门(一)相关推荐
- 纯新手入门机器/深度学习自学指南(附一个月速成方案)
原作:Masum Hasan 问耕 编译整理 量子位 出品 | 公众号 QbitAI 怎么入门机器/深度学习? 回答这个问题,最先要考虑的问题是:你有多少时间? 准备用三个月入门,和想要一个月速成,肯 ...
- Pytorch纯新手入门笔记
Pytorch入门笔记(推荐配合B站up主我是土堆食用) PyTorch深度学习快速入门教程(绝对通俗易懂!)[小土堆] 视频作者:我是土堆 Pytorch入门 P1 命令行中对anaconda不同环 ...
- 【贪玩巴斯】大一暑假自学Linux笔记记录Day4 //纯新手入门基于ubantu
大家好,我是巴斯,一个平平无奇的大一学生,利用暑假的日子,在家自学Linux,想着发博客来记录,欢迎大家对博客内容提出建议和交流.***B站看的黑马程序员的视频 ☆☆☆☆☆☆☆☆☆☆☆☆☆☆ 今天的内 ...
- 新手入门 如何快速找到Python进阶路线?
新手入门 如何快速找到Python进阶路线?Python作为一种开放源代码的脚本编程语言,常用于开发各种程序.随着近几年人工智能的火爆,Python一度受到众多程序员的追捧,成为首选的入门编程语言.很 ...
- mac 删除分区 command r 选择网络_Mac使用必看基础篇,Mac快捷键大全,mac新手入门指南...
你是Mac新手吗?你对使用Mac电脑有疑问吗?你还不知道mac有哪些快捷键吗?别着急,来看看小编给大家准备的Mac使用必看基础篇--Mac快捷键大全,对于新手用户很有帮助哦!! 一.开机相关命令快捷键 ...
- Python 新手入门引导
这是一篇 Python 入门指南,针对那些没有任何编程经验,从零开始学习 Python 的同学.不管你学习的出发点是兴趣驱动.拓展思维,还是工作需要.想要转行,都可以此文作为一个参考. 在这个信息爆炸 ...
- Python学习入门1:Python 新手入门引导
这是一篇 Python 入门指南,针对那些没有任何编程经验,从零开始学习 Python 的同学.不管你学习的出发点是兴趣驱动.拓展思维,还是工作需要.想要转行,都可以此文作为一个参考. 在这个信息爆炸 ...
- android 蒙版图片带拖动_黑橙修图:新手入门篇2-一句话带你认识图层蒙版
大家好,这里是黑橙修图新手入门教程系列. 上一篇文章我么介绍了ps当中最核心的一个概念--图层.那么这篇文章带大家来了解一个与图层密切相关的概念--图层蒙版. 其实,图层蒙版也是一个类似图层的东西,只 ...
- python适合编程语言吗_为什么说python是适合新手入门的编程语言
原标题:为什么说python是适合新手入门的编程语言 近期,不少小伙伴在咨询达妹,作为编程小白一枚,想学习一Python:不过不知道零基础该从哪里入手?自己看书的话改选什么样的书呢?自学需要多久能学会 ...
最新文章
- 图像拼接--Robust image stitching with multiple registrations
- shell 命令执行结果判断语句
- 160921、React入门教程第一课--从零开始构建项目
- 系统优化-----sysctl.conf文件内核设置参数详解
- data后缀文件解码_Java语法进阶13-文件、IO流
- WINCE 下配置 QT 的方法
- numpy 加速 矩阵相加_图解入门 NumPy !
- 浅评-我所用的输入法
- 16进制颜色与UIColor互转
- 雅虎邮箱2022年2月28日起停止中国大陆服务后的收信方法
- 易基因|典型案例:MeRIP-seq综合分析肺腺癌中的转录组m6A甲基化组
- 第六届北大CIO班结业暨SOA与BPM论坛成功举办
- 半导体的光学性质和光电与发光现象
- 防治脖子痛的简易保健操
- java date dec_java – 将日期从“2009-12 Dec”格式转换为“31-DEC-2009”
- html5在线学习系统,Canvas LMS 在线学习管理系统
- web常用模块测试用例
- 【Kata Daily 190927】Counting sheep...(数绵羊)
- 【PS教程】PS照片做旧的方法,证书换照片教程
- 基于腾讯x5封源库,提高60%开发效率
热门文章
- android实现runnable接口,013 Android多线程-实现Runnable接口
- 制作 tusimple 数据集格式的数据
- 原神模型(2022全)
- ShardingSphere应用专题--4.1.1版本--服务治理(十四)
- [trans]关于月亮的诗词
- [Unity小项目]俄罗斯方块
- iText中使用虚线(表格边框或其他)
- 常用 rules 正则校验
- html 期末大作业,qx.html
- 2022.6.6 特长生模拟