指针引用的怪问题 真奇怪 帮忙看看 thx
void WriteProcessBYTES(HANDLE hProcess, DWORD lpAddress, void* buf, int len)
{
WriteProcessMemory(hProcess, (void*) lpAddress, buf, len, 0);
}
void _declspec(naked) Asm(void)
{
__asm {
pushad
call foo
popad
ret
}
}
WriteProcessBYTES(hProcess, patchAddress, &Asm, 8);
我编了一段代码向进程中写几条汇编语句
这条语句的第三个参数 是怎么回事 进入
void WriteProcessBYTES(HANDLE hProcess, DWORD lpAddress, void* buf, int len) 这个函数 原来的Asm的地址变了 buf的指向并不和Asm相同
而是指向了Asm这个东西的指针 是不是有点离谱
这样就出现了
在用WriteProcessMemory(hProcess, (void*) lpAddress, buf, len, 0);
写内存的时候 写的是buf的内容 而不是Asm的内容
把&Asm改成(void *)Asm也不行
这个Asm到底指的是什么 不是这个函数的地址 而且参数传进去会变 怎么才能不变
thx