缓存区溢出攻击实验(1)
本实验预计分 3 个小实验来做,本文是第一个实验。
背景介绍
先看下百度百科里的 缓冲区溢出攻击 :
缓冲区溢出是指当计算机向缓冲区内填充数据位数时超过了缓冲区本身的容量,溢出的数据覆盖在合法数据上。理想的情况是:程序会检查数据长度,而且并不允许输入超过缓冲区长度的字符。但是绝大多数程序都会假设数据长度总是与所分配的储存空间相匹配,这就为缓冲区溢出埋下隐患。操作系统所使用的缓冲区,又被称为“堆栈”,在各个操作进程之间,指令会被临时储存在“堆栈”当中,“堆栈”也会出现缓冲区溢出。
大概了解一下缓冲区溢出的概念之后,需要知道一些关于堆栈的基础知识。
由于这些是计算机学科的基础,我在网上稍微搜了一下也没有找到讲得比较好的文章=。=考虑到对本实验有兴趣的基本都会是计算机相关学科的学习者,因此此处就不再补充关于堆栈的一些基础知识。
实验环境
系统
Windows 10 家庭中文版 (64 bit)
IDE
编译器
下面先放源代码再来看实验内容。