如何从物理内存中读取数据?

3
我想在Delphi、Assembly中读取Windows 7 64位的物理内存。如何读取物理内存?

我找到了相关的问题:https://dev59.com/RGoy5IYBdhLWcg3wq_wk - Roman Yankovsky
1个回答

2
由于Windows的虚拟内存保护机制,您无法从用户空间读取物理内存。为了读取物理内存,您需要在内核空间执行代码。

3
你需要编写一个设备驱动程序,这基本上排除了Delphi。设备驱动程序通常用C和/或汇编语言编写,现在主要使用C语言。 - David Heffernan
2
一种方法是编写设备驱动程序。也许有人已经编写了一个Windows驱动程序,可以复制Linux/Unix的/dev/mem功能。加载它,然后编写程序打开驱动程序接口并读取。 - wallyk
4
我们无法在评论区教授内核模式编程。而且您的程序永远不会在内核模式下运行。您需要学习C语言,然后了解内核模式编程,这与用户空间有很大的区别。我想我回答了你提出的问题。 - David Heffernan
2
\Device\PhysicalMemory怎么样?多年前我曾使用过这个对象从物理内存中读取数据,不确定它是否仍然存在。 - Roman Yankovsky
1
@RomanYankovsky 看起来它只能在内核模式下使用。 - David Heffernan
显示剩余8条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接