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 ",buffer);
}
void fun2()
{
printf("Call fun2");
}
int main(int argc, char *argv[])
{
printf("Address Of fun2=%p ",fun2);
fun1("0000000000000000000000x79x84x04x08");
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

原文地址:https://www.cnblogs.com/moonseazj/p/4548400.html