码迷,mamicode.com
首页 > 其他好文 > 详细

体验缓冲区溢出

时间:2015-03-16 21:20:10      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:c   安全   缓冲区溢出   

缓冲区溢出:往程序的缓冲区写超出其长度的内容,也就是使用了申请之外的内存,会造成意想不到的结果。

来看一个很小的例子,这个例子来自这里:http://zhan.renren.com/ilovecrack?from=template

代码

#include<stdio.h>


void main()
{
	int i=0;
	int a[]={1,2,3,4,5,6,7,8,9,10};
	
	for(i=0;i<=10;i++)
	{
		a[i]=0;
		printf("Hello World!\n");
	}
} 

运行结果

技术分享


分析

技术分享

i=0~10,a[10]越界了,它越界到了哪里呢?地址是从小往大增长的,没错,它越界到了i的地址空间。于是a[10]=0就是i=0,下次循环时,i=0,满足循环条件,于是循环继续进行着。每当i==10的时候,循环体里的语句都将把i置为0,于是循环将永无止境地进行下去。



体验缓冲区溢出

标签:c   安全   缓冲区溢出   

原文地址:http://blog.csdn.net/hiboy_111/article/details/44310601

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!