缓存区溢出攻击实验(1)

本文是缓存区溢出攻击的初步实验,通过编写代码在溢出过程中覆盖返回地址,使得程序在overflow函数执行后跳转至fun函数,实现了攻击的成功。实验涉及Windows 10上的Code::Blocks IDE和MinGW编译器,详细记录了实验步骤、遇到的问题及解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

缓存区溢出攻击实验(1)

本实验预计分 3 个小实验来做,本文是第一个实验。

  1. 缓存区溢出攻击实验(1)
  2. 缓存区溢出攻击实验(2)
  3. 缓存区溢出攻击实验(3)

背景介绍

先看下百度百科里的 缓冲区溢出攻击

缓冲区溢出是指当计算机向缓冲区内填充数据位数时超过了缓冲区本身的容量,溢出的数据覆盖在合法数据上。理想的情况是:程序会检查数据长度,而且并不允许输入超过缓冲区长度的字符。但是绝大多数程序都会假设数据长度总是与所分配的储存空间相匹配,这就为缓冲区溢出埋下隐患。操作系统所使用的缓冲区,又被称为“堆栈”,在各个操作进程之间,指令会被临时储存在“堆栈”当中,“堆栈”也会出现缓冲区溢出。

大概了解一下缓冲区溢出的概念之后,需要知道一些关于堆栈的基础知识。

由于这些是计算机学科的基础,我在网上稍微搜了一下也没有找到讲得比较好的文章=。=考虑到对本实验有兴趣的基本都会是计算机相关学科的学习者,因此此处就不再补充关于堆栈的一些基础知识。

实验环境

下面先放源代码再来看实验内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值