Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Read physical memory under Windows 8

Tags:

windows

I would like to be able to plug in a physical address, and read the data stored at that address.

Under Linux, I would use /dev/mem to acquire this data. Under Windows 8, I'm not sure what mechanism is available to do this.

My use case is inspecting a PCI Express device. The PCI Express device creates a ring buffer at a known address, that I can determine from the PCIe BAR. Once this address has been set, it won't change until the computer restarts.

Currently, I can use applications like RW Everything to see the data there, but I would like to be able to do this without user interaction (Without the GUI) so that I have fewer issues with the ring buffers wrapping before I can access the data.

Does anyone know if there is a privileged Windows system call I can make from userspace (to mmap a region for example) or do I need to use a custom kernel module to do this? I imagine that there is some way to do it without a custom kernel module, because I don't believe I installed one when I installed RW Everything.

like image 929
Bill Lynch Avatar asked May 15 '14 16:05

Bill Lynch


People also ask

How can I see what is using physical memory?

To open up Resource Monitor, press Windows Key + R and type resmon into the search box. Resource Monitor will tell you exactly how much RAM is being used, what is using it, and allow you to sort the list of apps using it by several different categories. However, it doesn't offer much else.

How do I check my physical memory on Windows?

Press Ctrl + Shift + Esc to launch Task Manager. Or, right-click the Taskbar and select Task Manager. Select the Performance tab and click Memory in the left panel. The Memory window lets you see your current RAM usage, check RAM speed, and view other memory hardware specifications.

How do I check memory on Windows 8?

You can also press Windows key + I to open the Settings app, then click the System option and select About in the left navigation menu. In the System Properties window, look for Installed RAM in Windows 11 and Windows 10, or Installed memory (RAM) in Windows 8.

Where can I find physical system memory?

Your computer's Random Access Memory (RAM) is stored on a memory chip that is typically found on the motherboard. This where your computer stores short term data. RAM is the hub of storage for all active and running programs and processes.


2 Answers

Since Windows Server 2003 SP1, user-mode access to physical memory has not been possible. You will have to develop a driver to do it (or find a third-party tool that includes one).

From Technet:

In Windows Server 2003 SP1, user-mode access to the \Device\PhysicalMemory object is not permitted. All forms of access (read, write) are refused when the \Device\PhysicalMemory object is accessed from a user-mode application. Access to the \Device\PhysicalMemory object is refused regardless of the user context (Administrators, Users, Local System, etc.) the application is running in.

like image 193
nobody Avatar answered Oct 16 '22 16:10

nobody


There are many windows software to access the physical memory, however, many of them cannot access the physical memory in windows vista or 7 because of physical memory protection feature in these OS's.

There are many windows tools similar to dev/mem unix's one, such as:

  • Belkasoft Live RAM Caputer
  • WindowsSCOPE Pro and Ultimate, available at http://www.windowsscope.com
  • WindowsSCOPE Live
  • winen.exe (Guidance Software - included with Encase 6.11 and higher)
  • Mdd (Memory DD) (ManTech)
  • MANDIANT Memoryze
  • Kntdd
  • Moonsols
  • HBGary
  • FTK Imager
  • OSForensics
  • WinPmem; and
  • Windows Memory Reader

Check this wiki for more info: http://www.forensicswiki.org/wiki/Tools:Memory_Imaging

like image 27
Shadi Namrouti Avatar answered Oct 16 '22 14:10

Shadi Namrouti