这要先说什么是缓冲区,缓冲区指一个程序的记忆范围(领域),该领域是用来储存一些数据,如电脑程序信息,中间计算结果,或者输入参数。把数据调入缓冲区之前,程序应该验证缓冲区有足够的长度以容纳所有这些调入的数据。否则,数据将溢出缓冲区并覆写在邻近的数据上,当它运行时,就如同改写了程序。假如溢出的数据是随意的,那它就不是有效的程序代码,当它试图执行这些随意数据时,程序就会失败。另一方面,假如数据是有效的程序代码,程序将会按照数据提供者所设定的要求执行代码和新的功能。