我之前的代码中有__asm块,但我想做一些更改。
我有一个裸函数拦截了API调用并修改了其中一个参数。 我这样做是通过弹出堆栈中的所有参数,修改目标并将其推回。
我不想再与堆栈交互了,我尝试了这个
__asm
{
// make the stack frame
push ebp
mov ebp, esp
mov eax, [ebp + 8]
mov param0, eax
};
// here I modify param0
__asm
{
mov eax, param0
mov [ebp + 8], eax // accessing parameters the right way
jmp continueAdr // this gives control back to the hooked function
};
这给了我一个" Microsoft(R)C / C ++优化编译器已停止工作"。 它告诉我"环顾四周"一段代码,但它与一个完全不同的功能,与此无关。 我该如何解决这个问题?或者该代码有问题吗?