首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

请教个缓冲区溢出光速入门中的有关问题

2012-04-21 
请问个缓冲区溢出光速入门中的问题缓冲区溢出光速入门上的例子,请看void why_here(void) /*这个函数没有任

请问个缓冲区溢出光速入门中的问题
缓冲区溢出光速入门上的例子,请看
void why_here(void) /*这个函数没有任何地方调用过*/
{
printf("why u here ?!\n");
exit(0);
}

int main(int argc,char * argv[])
{
int buff[1];
buff[2]=(int)why_here; //buff[1]覆盖了EBP,,buff[2]覆盖了EIP
return 0;
}
我在VC6上可以运行,并执行了why_here()函数,可是在linux上
编译能通过,执行时却没有why_here()函数,请问:这是为什么?
如何更改?

[解决办法]
buff[2]=(int)why_here;
没有调用函数,why_here函数名,把why_here函数的指针转化为int.
函数本身没执行。

[解决办法]
把vc6编译后的汇编和gcc编译后的汇编发上来,比对下

热点排行