Buffer Over Flow Vulnerability

记录一个简单的栈溢出的实例,具体的分析以后加进去。

程序源代码buffer.c:

#include <stdio.h>
#include <string.h>
void fun1(char *input)
{
char buffer[10];
strcpy(buffer,input);
printf("Call fun1,buffer=%s\n",buffer);
}
void fun2()
{
printf("Call fun2");
}
int main(int argc, char *argv[])
{
printf("Address Of fun2=%p\n",fun2);
fun1("0000000000000000000000\x79\x84\x04\x08");
return 0;
}

Linux编译命令:

1 首先关闭Linux系统的ASLR(地址随机化保护机制)

        sudo sysctl -w kernel.randomize_va_space=0

2 使用gcc关闭栈保护机制进行编译

        gcc -fno-stack-protector -o buffer buffer.c

3 生成汇编码查看

        gcc -fno-stack-protector -S buffer.c

4 运行查看

        ./buffer

posted @ 2015-06-03 10:02  Moonseazj  阅读(425)  评论(0编辑  收藏  举报