# include# include void 乐趣(char *名称){ ,,,char buf [10]; ,,,拷贝字符串(buf、名称); ,,,printf (" % s \ n " buf); } void 黑客(){ ,,,printf(“国旗\ n”); } int main () { ,,,char []=癆lex@bbb”名称; ,,,乐趣(名称); ,,,return 0; }
上面的程序是一个正常的C语言程序,但主要是函数中没有调用黑客()函数、下面我就演示下如何利用缓冲区溢出来执行黑客函数的内容。
使用codeblocks编译并执行上述程序后,拖入od查看栈的变化情况,看看给变量名称赋什么值的时候,会恰好覆盖掉叫有趣处的函数返回地址
# include 重新编译执行后,我们发现利用成功: , 简单栈溢出利用