无法用memcpy写内存,但WriteProcessMemory很好

时间:2015-08-13 16:47:28

标签: c++ winapi memcpy

我正在编写一个应用程序来加载我自己的DLL,并在目标进程中重写一些代码来实现某些功能。我用Cheat Engine检查了内存块,发现我要重写的内存区域是“Execute / Read only”。但奇怪的是(至少对我而言)我能够通过外部程序使用WriteProcessMemory重写内存块,但不使用我自己的DLL加载到目标进程的内存中的memcpy。

有没有其他方法可以在进程中重写操作码,还是需要使用WriteProcessMemory来重写它?

1 个答案:

答案 0 :(得分:1)

要更改可执行内存,通常需要使用VirtualProtect()来更改要写入的内存页面的访问标记。 WriteProcessMemory()可能会为你设置这些标志。