Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/132.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何保护进程不受writeprocessmemory的影响?_C++_Memory - Fatal编程技术网

C++ 如何保护进程不受writeprocessmemory的影响?

C++ 如何保护进程不受writeprocessmemory的影响?,c++,memory,C++,Memory,从另一个进程调用WriteProcessMemory时,当前进程调用了哪个函数?当前进程中没有处理WriteProcessMemory。它发生在操作系统内部——它将外部进程映射到当前进程的地址空间,写入内存,然后再次取消映射内存 如果需要对此进行保护,则必须阻止所有进程使用WriteProcessMemory(或者至少拦截它并检查进程是否有目标)。如果您不小心,这可能会阻止调试器在该系统上工作。这可能会让人们感到不安,而知道他们在做什么的人可能会绕过它 此问题的定义与其声明不匹配。而Virtua

从另一个进程调用WriteProcessMemory时,当前进程调用了哪个函数?

当前进程中没有处理
WriteProcessMemory
。它发生在操作系统内部——它将外部进程映射到当前进程的地址空间,写入内存,然后再次取消映射内存


如果需要对此进行保护,则必须阻止所有进程使用WriteProcessMemory(或者至少拦截它并检查进程是否有目标)。如果您不小心,这可能会阻止调试器在该系统上工作。这可能会让人们感到不安,而知道他们在做什么的人可能会绕过它

此问题的定义与其声明不匹配。而VirtualProtectEx、CreateRemoteThread在当前进程中也没有任何原因?正确,它们都发生在操作系统内部-CreateRemoteThread显然会导致另一个线程在原始进程中运行,如果你的代码知道它“应该”有多少线程(通过枚举进程中的所有线程——但它确实假设你知道图形驱动程序、音频驱动程序、物理引擎等不会[在某些硬件上]创建任意线程),那么这一点很可能会被检测到.VirtualProtect及其兄弟进程完全是操作系统的一部分,因此您无法从“目标”进程中看到这一点。在此再补充一点:在典型情况下,当发生
WriteProcessMemory
时,目标进程将挂起。因此,它通常根本无法做出反应。