Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/135.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.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++ 扫描进程存储器_C++_Windows_Debugging_Memory - Fatal编程技术网

C++ 扫描进程存储器

C++ 扫描进程存储器,c++,windows,debugging,memory,C++,Windows,Debugging,Memory,我想写一个进程扫描程序来检测恶意代码,我需要扫描加载到内存中的PE可执行文件的每个部分。我一直在想如何做到这一点,在我看来,有两种可行的解决方案: 读处理存储器 优点:易于使用 缺点:必须读取内存并将其复制到缓冲区,由于缓冲区有限,无法读取整个过程内存,搜索也很困难,因为一次将内存复制到缓冲区的“窗口”很小 将DLL插入进程的内存 优点:能够直接访问进程内存,无需拷贝 缺点:一些安全程序不赞成“注入”,这是一种相当棘手的方法,另外我还需要复制程序需要处理的数据 我的问题是:有没有其他方法

我想写一个进程扫描程序来检测恶意代码,我需要扫描加载到内存中的PE可执行文件的每个部分。我一直在想如何做到这一点,在我看来,有两种可行的解决方案:

  • 读处理存储器
优点:易于使用 缺点:必须读取内存并将其复制到缓冲区,由于缓冲区有限,无法读取整个过程内存,搜索也很困难,因为一次将内存复制到缓冲区的“窗口”很小

  • 将DLL插入进程的内存
优点:能够直接访问进程内存,无需拷贝 缺点:一些安全程序不赞成“注入”,这是一种相当棘手的方法,另外我还需要复制程序需要处理的数据

我的问题是:有没有其他方法可以完成另一个进程内存的完整内存扫描(假设我有这样做的特权)?
如果不是:如果我需要一次读取一个小“窗口”,我应该如何处理扫描整个内存的需要?

看看它是如何工作的,除非你真的需要在目标进程中执行代码,
ReadProcessMemory
显然是做这项工作的正确方法。我在一个网站上发布了一个演示。这是一个很好的答案,把它作为一个答案,我会接受它