知识屋:更实用的电脑技术知识网站
所在位置:首页 > 操作系统 > linux

ASLR

发布时间:2014-09-05 15:24:24作者:知识屋

proc/sys/kernel/randomize_va_space用于控制Linux下 内存地址随机化机制(address space layout randomization),有以下三种情况
 
0 - 表示关闭进程地址空间随机化。
1 - 表示将mmap的基址,stack和vdso页面随机化。
2 - 表示在1的基础上增加栈(heap)的随机化。
 
 
 
 
在Ubuntu 10.04.3 LTS下
 
 
root@bt:~# cat /proc/sys/kernel/randomize_va_space 2在android 2.3.3下
 
 
root@bt:~# adb shell# cat /proc/sys/kernel/randomize_va_space1在Android 4.1.2下(完整的ASLR和PIE在android 4.1后加入)
 
root@bt:~# adb shell# cat /proc/sys/kernel/randomize_va_space2
 
 
测试ASLR代码如下:
 
 
#include <stdio.h>unsigned long find_start(void){__asm__("movl %esp, %eax");}int main(){printf("0x%x /n", find_start());}在Ubuntu 10.04.3 LTS下运行结果:
 
 
root@bt:~# ./aslrtest 0xbfda8808 root@bt:~# ./aslrtest 0xbfa39598 root@bt:~# ./aslrtest 0xbf968b18 root@bt:~# ./aslrtest 0xbfe490b8 root@bt:~# ./aslrtest 0xbf8a7ad8
 
参考:
http://www.zhishiwu.com/os/201212/178306.html
http://www.zhishiwu.com/os/201212/178307.html
https://en.wikipedia.org/wiki/Address_space_layout_randomization  
(免责声明:文章内容如涉及作品内容、版权和其它问题,请及时与我们联系,我们将在第一时间删除内容,文章内容仅供参考)
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜