在Windows 8下读取物理内存

Bil*_*nch 5 windows

我希望能够插入一个物理地址,并读取存储在该地址的数据.

在Linux下,我会/dev/mem用来获取这些数据.在Windows 8下,我不确定有什么机制可以做到这一点.

我的用例是检查PCI Express设备.PCI Express设备在已知地址创建环形缓冲区,我可以从PCIe BAR确定.设置此地址后,在计算机重新启动之前不会更改.

目前,我可以使用像RW Everything这样的应用程序来查看那里的数据,但我希望能够在没有用户交互的情况下(没有GUI)这样做,这样我在访问数据之前就可以减少环形缓冲区包装的问题. .

有没有人知道我是否可以从用户空间(例如mmap一个区域)进行特权Windows系统调用,或者我是否需要使用自定义内核模块来执行此操作?我想有一些方法可以在没有自定义内核模块的情况下完成它,因为我不相信我在安装RW Everything时安装了一个.

And*_*ico 7

从Windows Server 2003 SP1开始,用户模式无法访问物理内存.您将不得不开发一个驱动程序(或找到包含一个的第三方工具).

来自Technet:

在Windows Server 2003 SP1中,不允许用户模式访问\ Device\PhysicalMemory对象.从用户模式应用程序访问\ Device\PhysicalMemory对象时,将拒绝所有形式的访问(读取,写入).无论运行应用程序的用户上下文(管理员,用户,本地系统等)如何,都会拒绝访问\ Device\PhysicalMemory对象.