具体实现效果
其实原理很简单,就是利用溢出修改函数返回的地址,令其跳转到另外一个位置
溢出首先改变了EBP储存的内容,然后紧接着就是返回的地址,这里修改的就是返回的地址
另外,这里还需要注意的一点是
因为汇编指令在内存中都是四字节对齐的,所以如果局部变量为char a[9]的话,可用的内存为9字节。
但实际空白的内存为12字节,因此在利用溢出漏洞时应该输入12个字符才溢出到EBP,而EBP再占四个字节,再后面才是返回地址。
所以,像这样利用溢出漏洞的话若分配的是9-12,都先要输12个字符,后面再接地址。
(这篇破文写得很水= =)更详细的内容可以到该文的开始点超链接