缓冲区溢出攻击试验(bufbomb.c)

本文详细解析了《深入理解计算机系统》一书中bufbomb.c的缓冲区溢出攻击,通过分析函数帧栈结构和反汇编代码,提出两种解决方案。第一种方案涉及修改返回地址和栈帧值,但存在栈空间问题;第二种方案通过扩大buf大小并构造特定机器码,成功打印0xdeadbeef并避免栈检查错误。

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

本文的代码来自来源于《Computer Systems A Programmer's Perspective》(深入理解计算机系统》一书中的bufbomb.c作业题。

实验环境xp+vc6.0。

另:linux2.6+gcc4.x下目前碰到栈保护等措施,暂时还没研究出结果。

 

问题描述如下:

 

分析下面程序,可以得知,正常情况下,这个函数会在getbuf中,调入getxs函数读入数字对,然后不管任何情况下,

都会对test函数返回0x1,然后由test中的printf函数打印getbuf的返回值。 现在你的任务,就是,利用缓冲区溢出

的漏洞,输入些特殊的数字,使得屏幕中打印的是0xdeadbeef。

 

bufbomb.c 源代码:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值