- ASLR:一种针对缓冲区溢出的安全保护技术,达到阻止溢出攻击的一种技术
- PIE:PIE 是 gcc 编译器的功能选项,作用于程序(ELF)编译过程中。是一个针对代码段( .text)、数据段( .data)、未初始化全局变量段( .bss)等固定地址的一个防护技术,如果程序开启了PIE保护的话,在每次加载程序时都变换加载地址,从而不能通过 ROPgadget 等一些工具来帮助解题。
修改ASLR
1.查看当前系统的ASLR打开情况
sudo cat /proc/sys/kernel/randomize_va_space
0:关闭
1:随机化栈基地址(stack)、共享库(.so\libraries)、mmap 基地址
2:在1基础上,增加随机化堆基地址(chunk)
2.修改ASLR
2.1进入root
su
2.2输入密码无法进入,可能是设置密码
sudo passwd
输入两次密码
显示 successfully
2.3切换至root,关闭ASLR
su
echo 0 > /proc/sys/kernel/randomize_va_space
cat /proc/sys/kernel/randomize_va_space
2.4成功关闭ASLR
关闭PIE
1.使用gcc编译时,加入选项
-no-pie
2.查看pie是否关闭
使用 checksec 命令
3.如下所示,pie关闭
参考链接:
https://blog.csdn.net/weixin_43921239/article/details/103813046
https://blog.csdn.net/white_eyes/article/details/7169199