在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;
两种方法都是直接修改了内存,呵呵,还是蛮有意思的啦。