在VC6 Debug环境下,要求填补一段代码,使输入与输出一致。
#Include <Stdio.h>
void test()
{
int t;
scanf("%d", &t);
/*
在这里填写代码……
*/
}
int main()
{
int m;
test();
printf("%d", m);
}
方法一:
int* pt = &t;
pt += 22;
*pt = t
方法二:
#Include <windows.h>
DWORD addrEbp;
_asm
{
mov addrEbp,ebp;
}
DWORD *pm=(DWORD *)(addrEbp + 0x80-0x28 -4);
*pm=t;
两种方法都是直接修改了内存,呵呵,还是蛮有意思的啦。