在Windows 8下读取物理内存

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

在Linux下,我会使用/dev/mem获取这些数据。 在Windows 8下,我不知道有什么机制可以做到这一点。

我的用例是检查PCI Express设备。 PCI Express设备在已知地址创build一个环形缓冲区,我可以从PCIe BAR中确定。 一旦这个地址被设置,它将不会改变,直到电脑重新启动。

目前,我可以使用像RW Everything这样的应用程序来查看那里的数据,但是我希望能够在没有用户交互的情况下执行此操作(没有GUI),以便在我可以访问数据之前, 。

有谁知道是否有一个特权的Windows系统调用,我可以从用户空间(例如mmap的地区),或者我需要使用自定义的内核模块来做到这一点? 我想有没有一个定制的内核模块有办法做到这一点,因为我不相信我安装了RW Everything时安装了一个。

Solutions Collecting From Web of "在Windows 8下读取物理内存"

自从Windows server 2003 SP1以来,用户模式对物理内存的访问是不可能的。 你将不得不开发一个驱动来做到这一点(或者找到一个包含其中的第三方工具)。

来自Technet :

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

有许多Windows软件可以访问物理内存,但是由于这些操作系统中的物理内存保护功能,很多Windows软件无法访问Windows Vista或7中的物理内存。

有许多类似于dev / mem unix的窗口工具,比如:

  • Belkasoft Live RAM Caputer
  • WindowsSCOPE Pro和Ultimate,可在http://www.windowsscope.com上找到
  • WindowsSCOPE Live
  • winen.exe(引导软件 – 包含在Encase 6.11及更高版本中)
  • Mdd(内存DD)(ManTech)
  • MANDIANT Memoryze
  • Kntdd
  • Moonsols
  • HBGary
  • FTK Imager
  • OSForensics
  • WinPmem; 和
  • Windows内存读取器

查看这个wiki的更多信息: http : //www.forensicswiki.org/wiki/Tools : Memory_Imaging