堆式缓冲区溢出
来源:互联网 发布:大数据 mobi 编辑:程序博客网 时间:2024/06/11 09:41
在VC6.0环境下,将以上代码编译为Debug版,然后运行,结果如下:
buf1's addr = 0x380fe0
buf2's addr = 0x381018
buf2's addr - buf1's addr = 56
buf1 = aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
buf2 = a
很有趣吧,我们并没有对已经被初始化为空的buf2做任何的赋值操作,但是最终buf2却变成了a。其实这就是一个简单的堆式缓冲区溢出漏洞。
那么这样的情况会引起什么安全问题呢?相像一下吧,假如在一个游戏程序中,buf1为保存用户输入的用户名的变量,而buf2是用来保存金钱的变量,那么,只要我们输入特殊的用户名就能改变buf2了,也就相当于改变了金钱!!!这还了得。当然,这样的漏洞的实际分析和利用是非常复杂和多样的,同时也普遍认为堆式缓冲区溢出比堆栈式缓冲区溢出要难很多。
最后提一点,为什么要编译为Debug版呢?因为Debug版和Release版的程序在运行时的内存结构是不同的,之所以这样要求仅仅是为了演示出上面的效果,当然,Release版同样会溢出,只是会和Debug版的不同罢了,例如就不是像Debug版那样输入超过56个字符就会引起溢出了。
- 堆式缓冲区溢出
- 【例子】堆缓冲区溢出
- 缓冲区溢出——堆溢出
- 堆栈式缓冲区溢出
- 内存泄露,缓冲区溢出,堆破坏 的问题
- 缓冲区溢出
- 缓冲区溢出
- 缓冲区溢出
- 缓冲区溢出
- 缓冲区溢出
- 缓冲区溢出
- 缓冲区溢出
- 缓冲区溢出
- 缓冲区溢出
- 缓冲区溢出
- 缓冲区溢出
- 缓冲区溢出
- 缓冲区溢出
- MS Sql Server数据库分区
- 超市行业技巧-1
- 按日期选择最晚日期与最早日期对应的数的差值
- Spring AOP 学习小结
- 推荐一本Papervision3D书籍:Papervision3D Essentials
- 堆式缓冲区溢出
- 独立任务最优调度问题
- 杂记
- 读取其它进程richedit控件的内容
- 飞,我留不住的梦!
- 键盘上每个键作用!!! (史上最全的)
- php统计IP以及在线人数的统计
- Symbian中的iEikonEnv和iCoeEnv变量以及文件操作
- 通讯资料