码迷,mamicode.com
首页 > 其他好文 > 详细

修改程序堆栈的可执行属性

时间:2015-01-14 00:40:21      阅读:338      评论:0      收藏:0      [点我收藏+]

标签:

最近刚刚做完CSAPP的几个实验,在bufbomb实验中level2和level3,需要将攻击代码嵌入到缓冲区中并修改程序返回地址为缓冲区起始地址,但是遇到了栈不可执行的问题。因为ubuntu默认栈不可执行。这里总结了两种修改程序堆栈可执行属性的方法。

方法一:(有.c源文件)

  1. gcc -g -z execstack -fno-stack-protector stack.c -o stack
  2. ./stack

方法二:(只有编译后的可执行程序,比如实验中的bufbomb)

  1. 在本地安装execstack,命令:  sudo apt-get install execstack
  2. 修改程序堆栈的可执行属性,命令: execstack -s bufbomb

关闭ASLR命令:

  1. su root
  2. sysctl -w kernel.randomize_va_space=0(赋值为2,即可打开ASLR)
 

修改程序堆栈的可执行属性

标签:

原文地址:http://www.cnblogs.com/xlzhh/p/4222917.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!