C++:转储 RAM 内容

标签 c++ windows winapi

  • 如何在不触发访问冲突的情况下实现这一目标?

我试过将 bool 指针设置为特定的起始位置,然后逐步递增它。这会导致访问冲突。

我正在使用 Visual Studio 2010

最佳答案

Windows 是一个虚拟内存操作系统。这意味着软件处理“内存”——它可能会或可能不会在某个时间点缓存在 RAM 中。相当多的进程内存可能存储在磁盘上 - 在页面文件中,或作为文件映射的一部分。

那么,如果你从“转储RAM”降级为“转储内存”,那么你需要问问自己“哪个内存”。

除了作为虚拟内存操作系统之外,Windows 还可以保护应用程序免受彼此的影响 - 每个进程都有自己的专用内存地址空间。因此,您需要决定要转储哪些内存。我们自己的过程?这很容易。使用 VirtualQuery 检查 block 并将它们转储出来。

查看另一个进程?那更复杂。存在阻止不受信任的应用程序查看更受信任的进程内存的安全屏障。如果您有足够的权限,VirtualQueryEx 将允许您检查另一个进程。

最后,如果你想检查内核内存,那么你需要开发某种驱动程序:用户模式代码根本不允许查看内核内存。

关于C++:转储 RAM 内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4286166/

相关文章:

python - MySQL "data"文件夹不断增长,即使在 DROP TABLE 之后也是如此

windows - 为什么 perl 看不到 Windows 中存在的文件?

windows - Autohotkey:如何清除 Windows 分配的大多数 Fn 热键?

c++ - Win32 API C++,未使用 WM_COMMAND 接收到标识符

c++ - 错误 C2059 : 'constant' when trying to create a Qt container in a header file with known size

c++ - 如何合并两个 STL 映射?

c++ - 如何将 OpenCV 的 Mat 结构的部分图像矩阵加载到我自己的 3x3 数组中?

c++ - 使用 NSOpenGLView 进行线程渲染

delphi - Shell 函数的失败返回值

python - 如何在Windows中使用python以用户身份创建进程?