课后老师布置作业,查看各类变量以及代码区在内存中的分布情况。
在运行之前,要关闭ASLR(Address Space Layout Randomization)即地址空间布局随机化
ALSR
aslr是一种针对缓冲区溢出的安全保护技术,通过对堆、栈、共享库映射等线性区布局的随机化,通过增加攻击者预测目的地址的难度,防止攻击者直接定位攻击代码位置,达到阻止溢出攻击的目的的一种技术。如今Linux,Windows等主流操作系统都已采用了该技术。
系统
机器为自身所用的阿里云云主机,系统CentOS 7.3
操作
ALSR由 /proc/sys/kernel/randomize_va_space
决定,默认为2
0 - 表示关闭进程地址空间随机化
1 - 表示将mmap的基址,stack和vdso页面随机化。
2 - 表示在1的基础上增加栈(heap)的随机化。
要关闭ALSR,只需将randomize_va_space
里面的内容改为0即可。
修改该文件不能直接用 vi
或者 vim
进行修改,也不能直接 sudo echo 0 > /proc/sys/kernel/randomize_va_space
使用此条命令即可关闭ALSR:sudo sh -c "echo 0 > /proc/sys/kernel/randomize_va_space"