假设您有一张债务清单,其中包含债权人的姓名和所欠金额。你还有一支神奇的铅笔,这支笔内置了擦除功能,如果你用它在纸上的某个地方写字,它会自动擦掉这个地方之前的字,这样只显示你新写的字。这就是计算机内存的工作原理,与我们生活中的改写方式略有不同。你买了一辆5000美元的车,只付了500美元的首付,所以你欠他4500美元。他告诉你他的名字叫约翰·史密斯。你在欠款表上写下他的名字和欠款额。你的债务清单现在看起来是这样的:后来,你还清了债务单上记录的债务。您还清了4,500美元(加上利息),擦掉了拖欠单上的记录,现在您的拖欠单又变成了空白。后来,你又从别人那里借了1000美元。他告诉你他的名字是“JohnSmithxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx9999999999”。您将欠款金额($1,000)和债权人姓名(JohnSmithxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx9999999999)记在账单上。现在你的拖欠单是这样的:($1000**一个0没有擦掉,没关系。)写他的名字的时候,他的名字不能写在名字栏里,但是你继续写,写在“欠款”一栏!这是内存溢出。后来,这张账单提醒你,你还欠约翰·史密斯先生xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx99999999990美元。你追踪到他并支付了他可能欠下的1000亿美元。英文原文:Howtoexplainbufferoverflowtoalayman翻译链接:http://www.vaikan.com/buffer-overflow/
