盒子
盒子
Posts List
  1. 前言
  2. 1.Stack Guard
  3. 2.DEP
  4. 3.ASLR
  5. 4.PIE

pwn四种基本保护

前言

学习pwn,了解到的四种basic protection

1.Stack Guard

• 做完function prologue①的时候回将随机生成的乱数压入stack中,function return前会检查乱数是否又被更动过,若发现被更动则立即结束程式
• 又称canary 金丝雀②

注释:
①function prologue:移动 RSP 和保存寄存器的动作一般处在函数的开头,叫做 function prologue
②canary:看视频讲的有一个了解,在煤矿中有毒或易燃气体的存在,常引起井下爆炸,或发生煤矿工人中毒的事故,而金丝雀对于这类气体很敏感,矿井中存在的微量有毒气体,在对矿工尚未造成威胁时,金丝雀就会出现窒息中毒的症状。所以,一些矿工在下井时带着金丝雀,将它们作为“生物报警器”。

2.DEP

• Data execution prevention 数据执行保护
• 可执行的地方不能写,可写的地方不能执行
• 又称NX
在这里插入图片描述

3.ASLR

• Address Space Layout Randomization 地址空间布局随机化
• 每次程序执行时stack、heap、library 位置都不一样
• 一种针对缓冲区溢出的安全保护技术,通过对堆、栈、共享库映射等线性区布局的随机化,通过增加攻击者预测目的地址的难度,防止攻击者直接定位攻击代码位置,达到阻止溢出攻击的目的

4.PIE

• Position Independent Execution
• 开启后,code和data也还会ASLR

支持一下
扫一扫,支持forsigner
  • 微信扫一扫
  • 支付宝扫一扫