满意答案
wk0512
2013.06.01
采纳率:45% 等级:12
已帮助:15719人
#include
#include
#include
void function(char *str)
{
char buffer[16];
strcpy(buffer, str);
}
void evilfunc()
{
printf("Am I Evil?\n");
}
int main(int argc, char* argv[])
{
int i;
char string[128];
for (i=0;i<127;i++)
string[i] = 'A';
string[127] = '\0';
i = 28;
string[i++] = 0x41;//这里
string[i++] = 0x42;//填入
string[i++] = 0x43;//evilfunc
string[i++] = 0x44;//地址
string[i++] = 0;
printf("This is a test!\n");
//printf("evilfunc address:%x\n",(int)&evilfunc);
function(string);
return 0;
}
在我机器上i = 28,是溢出eip的地址,或许你的不同,调试看看
00分享举报