我们是一群吹水少年,QQ群:103235496,
今天我又要吹什么水了,吹吹缓冲区的水吧。
都在说缓冲区溢出漏洞,那这东西到底是个什么J*玩意呢?
分开讲,缓冲区溢出可以看成缓冲区和溢出两个词。
打个比方吧,缓冲区好比一个玻璃杯,溢出好比倒进去的水太多然后溢出来了。
恩,讲完了。
当然没有讲完,正常来说的缓冲区就是在计算机内部存放临时数据的一个临时存放空间,长度大小是固定的,当当进去的数据过多,就会造成溢出,然后就会发生羞羞的事情。。。
.
下面,我们写几行代码来看一下溢出吧。
可能大家也知道,最经典的数组溢出,敲几行代码来看看.
运行结果没毛病,成功的输出了这几个char类型字母十六进制的ASCII码.
那么我们把name内容改成abcdefgh呢,会发生什么?
当然了,什么也不会发生,因为没数组越界嘛,哈哈哈,被我骗了吧!
那么我们让它越越界玩玩,嘿嘿嘿~
停止工作了,说明程序出错了,越界成功,哦也!
点击调试。
调戏它。
在这里中断就可以了,什么是中断?下一次讲(一脸严肃的表情)!
我们发现了程序断在了0x706F6E6D
发现了什么?
6D = m 6E = n 6F = o 70 = p
别问我为什么,自己看看下表。
其实就是十六进制的ASCII码,没毛病了吧老铁.
反正就是在mnop这个地方溢出了,那么这是为啥呢,下次说,我先洗洗睡了.
(此图是偷得)
哈哈哈傻吊.