_asm
{
...
push
0x68
0x0
push ebx
call memset
add esp,
0xc
}
上面的代码,在 vs2018 中,debug 模式下没有问题。release 模式下出错:error C2420: “memcpy”: 第一操作数 中的非法符号
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
把memset方法的地址在汇编代码模块外获取,存到局部变量,然后再调用就没问题了:
DWORD dwMemSet = (DWORD)memset; _asm { ... push 0x68 push 0x0 push ebx mov eax,dword ptr dwMemSet call eax add esp, 0xc ... }