最简单的堆栈溢出demo

参考了Nish Bhalla的堆栈溢出教程。要看到效果必须把VC编译选项 /GZ去掉。

#include  " stdafx.h "
#include 
< string .h >
#include 
< stdlib.h >

int  copy( char *  input)
{
    
char var[20];
    strcpy (var, input);
    
return 0;
}

int  hacked( void )
{
    printf(
"这里是堆栈溢出程序.看到我了吧.\n");
    exit(
0);
}

int  main( int  argc,  char *  argv[])
{
    
char hackstr[] = "AAAABBBBCCCCDDDDEEEEFFFFGGGG";
    
int *eip = (int*)&hackstr[24];        //20->23是EBP
    *eip = (int)hacked;

    copy(hackstr);
    
return 0;
}

你可能感兴趣的:(最简单的堆栈溢出demo)