关于修改函数返回地址的一种实现方法
实现方法用下面一段程序表示:#include <stdio.h>
void test()
{
int a;
(int)*(&a+2)=(int)*((int*)*(&a+1)+1);
}
void main()
{
test();
printf("这条消息不会被输出!");
}
本程序在VC++6.0中编译,测试成功。
程序将test函数的返回地址修改成main函数的返回地址,程序在调用test函数后就直接退出,其后的所有语句都不会执行!
为了不误导大家,对程序不作任何详细解释。
[[it] 本帖最后由 seaisland 于 2009-1-1 21:19 编辑 [/it]]