网络安全实验教程【1.8】

4.覆盖函数地址
单步执行 1 次,由于 strcpy 语句导致了 name[16]数组的缓冲区溢出,因而往后覆盖myfunc()的值为 0x62626262,如图 4.21 所示。

5.程序出错
再次单步执行 myfunc()函数时发生错误,指令地址为 0x62626262,这与覆盖返回地址类似,如果要控制程序的流程,需要将 myfunc()函数指针修改为某个跳转地址。在这个例子中,程序出错时按“ ALT” +“ 5”组合键调出寄存器窗口,可以观察到此时EAX=0x0012ff6c,正好指向 name[16]的地址,因此可以将 myfunc 的值改为 jmp eax 指令所在的地址。覆盖函数指针完成跳转如图 4.22 所示。

4.7.4 实验要求

使用 VC 6.0 跟踪覆盖函数地址的全过程,并给出过程中相关参数和内存的变化情况,说明程序出错的原因。

4.8 覆盖 SEH 链表实验

4.8.1 实验目的

本实验要求了解通过覆盖 SEH 链表进行缓冲区溢出利用的原理,掌握覆盖 SHE 链表
的过程。

4.8.2 实验内容及环境

1.实验内容
本实验使用 OllyDbg 调试器加载程序,从 main 函数开始处进行单步步入运行,观察栈中 SHE 链表节点和局部变量 a 的变化,跟踪异常处理过程,了解和掌握通过覆盖 SEH链表进行缓冲区溢出利用的技术。
2.实验环境
(1)靶机系统环境为 Windows XP SP3 32 位;
(2) VC 6.0:详见本书 4.3 节实验工具介绍;
(3) OllyDbg:详见本书 4.3 节实验工具介绍。

4.8.3 实验步骤

1.实验要求
通过 VC 6.0 将以下代码编译成 debug 版的.exe 文件。

1 
  • 23
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BinaryStarXin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值