When responders arrive at a compromised system, the instinct is often to image the disk and move on. It is a familiar workflow, well-documented and well-tooled. But disk imaging alone increasingly misses the most critical evidence in modern intrusions. Today's threat actors know how forensics works. They deliberately avoid writing to disk, load code directly into memory, and rely on the assumption that responders will collect their drives and send them to a lab — losing everything that was only ever in RAM.

Memory forensics closes that gap. A RAM capture taken from a live system preserves the runtime state of every running process, every active network connection, and every piece of code that was executing at that exact moment in time. For fileless malware, process injection attacks, and credential harvesting operations, it is often the only forensic evidence available.

This guide covers the practical fundamentals: why memory matters, when to capture it, how to capture it reliably, what artifacts to look for, and how to structure an analysis with Volatility.

Why Memory Forensics Matters

Disk forensics and memory forensics answer different questions. Disk forensics tells you what was installed, what files existed, and what executables ran. Memory forensics tells you what was actually happening at the moment of capture — what code was running, what connections were open, and what data was actively being processed.

The distinction matters enormously in modern intrusions for several reasons:

The SANS Institute order of volatility — the foundational principle of evidence collection — puts RAM at the top of the list precisely because it disappears the moment power is lost. Treat it accordingly.

When to Capture Memory

The triage decision to capture memory should happen early, before you do anything else on the live system. Every action you take on a running system — running tools, opening files, even typing commands — modifies memory. The longer you wait, the more evidence you overwrite.

Capture memory when any of the following conditions apply:

Conversely, memory capture is lower priority when the system has already been rebooted (memory is gone), when you are dealing with a historical incident rather than a live one, or when the available disk space and bandwidth make a 32 or 64 GB memory capture impractical during a rapid triage operation. In those cases, focus on disk artifacts and logs — but document the decision.

Memory Acquisition Methods

Acquiring memory from a live system requires a kernel-mode driver that can map and read physical memory pages. The tool runs on the target, reads RAM sequentially, and writes the output to a file (typically with a .raw, .dmp, .mem, or .lime extension). There are a handful of well-vetted acquisition tools used in professional IR work.

Windows: WinPmem and DumpIt

WinPmem is the open-source standard for Windows memory acquisition. It is maintained by the Rekall/Volatility community and outputs raw memory images compatible with Volatility. Usage is straightforward from an elevated command prompt:

winpmem_mini_x64_rc2.exe memory.raw

DumpIt (by Magnet Forensics) is another popular choice, particularly in enterprise IR engagements. It produces a .dmp file in Microsoft crash dump format, which Volatility can also parse. DumpIt is reliable, fast, and commonly pre-staged on IR jump kits.

Key considerations for Windows acquisition:

Linux: LiME

LiME (Linux Memory Extractor) is the de facto standard for Linux memory acquisition. Unlike Windows tools, LiME requires compiling a kernel module for the specific kernel version running on the target system. This is most efficiently done in advance as part of IR preparation, compiling LiME against the kernel versions used in your environment.

insmod lime-5.15.0-91-generic.ko "path=/mnt/usb/memory.lime format=lime"

LiME can also stream memory directly over a TCP connection, which is useful when you cannot write locally. The receiving system captures the stream into a file for analysis.

On Linux, physical memory can sometimes be read directly from /dev/mem or /proc/kcore, but both are subject to kernel restrictions that often make them incomplete or unusable. LiME is the more reliable path.

Live vs. Dead Acquisition

Live acquisition captures RAM from a running system and preserves the full volatile state. Dead acquisition refers to techniques like extracting RAM from a hibernation file (hiberfil.sys on Windows) or a virtual machine snapshot. Both are valid sources for Volatility analysis:

Key Memory Artifacts

A raw memory image contains everything the operating system had loaded into physical memory at the moment of capture. The forensic value depends on knowing what to look for and where to find it within the memory structures.

Volatility Framework Primer

Volatility is the industry-standard open-source framework for memory forensics. It provides a plugin-based architecture that extracts and reconstructs OS data structures from raw memory images. Volatility 3 is the current release and no longer requires profiles in the traditional sense — it uses symbol tables downloaded automatically based on the OS build identified in the image.

Installation

Volatility 3 runs on Python 3 and installs cleanly via pip:

pip install volatility3

Alternatively, clone the repository directly for the latest development builds:

git clone https://github.com/volatilityfoundation/volatility3.git

The basic invocation pattern is:

python3 vol.py -f memory.raw [plugin]

Essential Plugins

A practical memory investigation typically begins with a small set of high-value plugins before drilling into specific areas of interest:

Analysis Workflow

A structured approach prevents the common mistake of chasing interesting artifacts without maintaining investigative context. The following workflow is practical for most Windows memory investigations:

Throughout the workflow, maintain contemporaneous notes. Document every command run, every finding, and every investigative decision. Memory analysis can be non-linear, and it is easy to lose track of what you have already examined.

Common Findings in Real Incidents

Patterns emerge across different intrusion types. Knowing what to expect based on the threat actor category significantly accelerates analysis.

Fileless Malware

In Cobalt Strike and similar post-exploitation framework deployments, the beacon payload typically runs as an injected thread within a legitimate process. windows.malfind will flag the memory region, and dumping it will reveal either a Cobalt Strike beacon DLL (identifiable by its configuration block) or raw shellcode. The parent process is often a document viewer, browser, or scripting host that opened the initial dropper. windows.cmdline on the parent process frequently reveals the initial PowerShell or mshta command that loaded the payload.

Credential Harvesting

LSASS process memory is the primary target for credential theft. In cases where Mimikatz or similar tooling has run, you will often see evidence in two places: a suspicious process that made a handle request to LSASS (visible in windows.handles), and the LSASS process itself accessed by a process other than legitimate credential management services. In some cases, the output of the credential harvest is still in the memory of the attacking process as plaintext strings, recoverable with windows.strings filtered to the process memory range.

Lateral Movement Artifacts

Memory frequently preserves evidence of lateral movement that disk logs miss. WMI-based lateral movement often leaves transient process artifacts in memory that do not generate robust disk events. PsExec and similar tools may create temporary service entries visible in memory-resident registry hives even after the attacker cleaned up disk-based artifacts. Active SMB connections to internal hosts in windows.netscan output, originating from processes that should not be making internal network connections, are a reliable lateral movement indicator.

Ransomware Key Material

In active ransomware incidents caught early, memory sometimes contains recoverable key material. Ransomware implementations that generate the encryption key in memory before writing encrypted files may leave the key material in the heap of the ransomware process. While key recovery is not guaranteed — it depends entirely on the specific implementation and how much encryption has already completed — it is worth attempting on any system where ransomware is caught in the early encryption phase.

Building Memory Forensics into Your IR Process

Memory forensics is most valuable when it is a planned, default step in your response process rather than an afterthought. By the time you realize you should have captured memory, it is often already too late. Practical steps to institutionalize memory forensics in your IR capability:

Memory forensics is a discipline, not a tool. The ability to consistently extract meaningful intelligence from a RAM image — quickly, under pressure, during an active incident — comes from repeated practice and a solid understanding of operating system internals. The tools are free and the sample images are available; the investment is in the time to develop the skill before it is urgently needed.

For broader coverage of the artifacts that complement memory analysis, the Windows Forensic Artifacts cheatsheet provides a structured reference for disk-based evidence sources, and the Linux Forensic Artifacts guide covers the equivalent evidence landscape on Linux systems.

Strengthen Your IR Capabilities

Memory forensics is one component of a comprehensive incident response program. Learn how ForgeWork helps organizations build and test their response capabilities.

IR Services Explore More Insights