0

我正在研究通过高级编程语言(例如 C#)执行 Windows 7 机器的内存 (RAM) 转储的最佳方法。我已经对此进行了大量研究,我将在下面进行总结。

•Microsoft API 对内存的访问似乎在一段时间前被切断了 (\Device\PhysicalMemory)

•<em>现在看来,要访问内存,您的代码必须在内核模式下执行,而不是在用户模式下才能让您访问内存

•<em>我研究了系统挂起时 Windows 转储的内存(小、大和内核转储),这种方法不适合我的要求

我想知道是否有人对我应该如何访问机器的物理内存有很好的了解。由于我习惯于编写窗口应用程序,因此我对低级编码语言的了解很少。到目前为止,我收到的建议包括编写一个驱动程序来访问内存,然后通过更高级别的编程语言调用它。

任何社区可以提供的任何帮助都将不胜感激!提前致谢。

4

1 回答 1

0

使用procdump -ma。这给出了单个进程的完整状态。将操作系统的调试留给内核模式的人。

根据我使用 WinDBG 进行内核模式调试的短暂经验,我建议从第二台 PC 和 Firewire 链接开始。在被测系统上,卸下硬盘驱动器并安装带有符号的操作系统。确保您有一个带有符号的操作系统的良好基础映像,以便在您破坏它时使用。

在我要阅读的 WinDBG 书籍的简短列表中,有“Programming the Windows Driver Model”,Oney,MSPress。

这可能会有所帮助。

于 2012-04-09T13:24:33.563 回答