我在远程进程上使用 VirtualAllocEx 来预留一些空间,如下所示:
VirtualAllocEX (RemoteProcessHandle, nil, SizeInBytes, MEM_COMMIT or MEM_RESERVE, PAGE_EXECUTE_READWRITE);
然后我用WriteProcessMemory
“填充”/写入分配的地址空间
那我就好好用
VirtualFreeEx (RemoteProcessHandle, Address, 0, MEM_RELEASE);
释放分配的空间。
是否可以检查 VirtualAllocEx
的地址 after VirtualFreeEx
被调用以检查 VirtualFreeEx
成功了吗?
最佳答案
一旦您将地址返回给系统,以后对该地址的任何引用都是无效的。一旦成功调用了 VirtualFreeEx
,就不能再引用 Address
。一旦您将地址返回给系统,系统就拥有了它。该地址在未来变得有效的唯一方法是通过再次调用 VirtualAllocEx
。
关于windows - 检查 VirtualFreeEx 是否已经完成/执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14679777/