What evidence exists only in a Windows memory image and never in a disk image?
answer
- running state, not stored state
- no file on disk to hash
- the event log may have truncated it
- sockets carry the owning process id
- lsass holds tickets and hashes
basics
~20 sOnly RAM holds running state: code that never touched disk, full process command lines, live network endpoints with their owning process id, decrypted data, and credential material such as hashes, Kerberos tickets and session keys held by lsass.
solid answer
~50 sA disk image holds what was stored; a memory image holds what was *running*. Five things live there and nowhere else. First, code with no file behind it - a beacon injected into an already-running signed process leaves nothing on disk to hash or find. Second, the full command line of every live process, taken from the process's own parameter block; Windows Security 4688 carries the command line only if audit policy was configured to include it, and Sysmon Event ID 1 only where Sysmon was running. Third, the kernel's network endpoint structures, which tie a live connection to the process id that owns it. Fourth, anything the process decrypted - config, keys, buffers. Fifth, credential material held by `lsass.exe`: hashes, tickets and session keys, and cleartext secrets wherever a provider caches them. Lose the RAM and you lose the only copy.
go deeper
Be ready to list the categories quickly: injected code with no file, full command lines, live sockets with their owning process, decrypted data, and credential material in lsass. Say plainly that powering the host off destroys all of it.
Explain why each item is memory-only - where Windows actually keeps the command line, why an endpoint structure knows the owning process id, and why an injected payload leaves no filesystem artefact to find.
Show judgment about what each artefact proves. A resident credential is exposure, not theft; an endpoint carries no payload; executable pages are not automatically malicious. Be explicit about the claim you would defend.
Frame it as a collection policy: which hosts warrant memory capture before any remediation, who is allowed to authorise it, and what the organisation loses every time an incident is closed by reimaging first.
## The distinction that matters A disk image answers *what was stored on this machine*. A memory image answers *what this machine was doing*. The two overlap - RAM contains cached file contents, mapped executables and loaded registry hives - but there is a set of evidence that exists in RAM and has no on-disk counterpart at all. If the host is powered off or reimaged, that evidence is gone permanently and no later collection recovers it. ## What only RAM holds **Code with no file behind it.** The classic modern case: an operator injects a payload into a process that is already running - a signed Microsoft binary, correctly installed, whose file on disk is genuinely untampered. Nothing was written to the filesystem, so there is no file to hash, no Authenticode result to check, no Prefetch or Amcache entry for a new image. The executable bytes exist as pages inside another process's address space. Only a memory image captures them. **The full command line.** Windows stores each process's command line in its own user-space parameter block, exactly as the loader received it. Log sources are less reliable here: the native Windows Security 4688 process-creation event includes the command line **only** when the audit policy option to include it has been switched on, and Sysmon Event ID 1 carries it only on hosts where Sysmon was installed and running before the process started. Memory has it for any process still alive at capture, regardless of what anyone configured months earlier. **Live network state with ownership.** The kernel's TCP endpoint structures record local and remote address, port, state and the owning process id. That last field is the point: it binds a connection to a process. A flow record from the network tells you bytes moved between two addresses; it cannot tell you which process on the host opened the socket. Memory can. **Decrypted material.** A process that reads an encrypted configuration file, unwraps a key or receives a TLS-protected response holds the plaintext in its own memory. On disk there is only ciphertext. **Credential material.** `lsass.exe` holds the secrets needed to authenticate on behalf of logged-on users - password hashes, Kerberos tickets and their session keys, and cleartext secrets wherever a security provider is configured to cache them. Recovering these from an image tells you what an adversary with the same access *could* have taken. ## What that evidence proves - and what it does not Be precise about direction. Finding a credential in memory proves **the secret was resident on that host at the moment of capture**, so it must be treated as exposed and rotated. It does **not** prove anybody read it. Likewise, a network endpoint structure proves a socket existed with that owner; it says nothing about what crossed it, because the endpoint structure carries no payload. And executable pages inside a legitimate process prove code is mapped there, not that the code is hostile - runtimes that compile code at execution time produce private executable memory as a matter of routine. ## Why this bites in practice In a live purple-team exercise against production Windows servers, a beacon injected into a running application-server process can be invisible to every rule and every sensor: no new file, no new process, no anomalous parent-child pair, a signed image, a normal process list. The exercise's proof that the technique ran can end up resting entirely on the memory image - the finding exists *because* the image was taken. That is also why the reflex to "just reimage it" destroys the case: reimaging removes the implant and every trace of it in one action. ## The limits Memory is not a superset of disk. It holds only what is currently mapped or cached, historical artefacts such as event-log records and filesystem metadata live on disk, and RAM is a partial and stale view of any file it happens to be caching. And a memory image taken from a running system is not an atomic snapshot - it is written over minutes while the kernel keeps changing what is being copied - so parts of it can disagree with each other. Treat the two images as complementary sources answering different questions rather than one substituting for the other.
- Why is a full command line often available in memory when the event-log entry is not?Windows keeps each process's command line in its own parameter block for as long as the process lives. The log sources are conditional: Security 4688 includes the command line only when audit policy was configured to include it, and Sysmon Event ID 1 carries it only where Sysmon was installed and running before the process started. Memory does not depend on a decision someone made about logging.
- What does a credential recovered from lsass memory actually prove?That the secret was resident on that host at the moment of capture, so it is exposed and must be rotated. It does not prove anyone stole or used it. Proving access is a separate question - you would look for evidence that something read that process's memory, and treat the credential itself as risk rather than as an intrusion finding.
- Does a memory image contain any disk-resident evidence?Partly. Cached file contents, mapped executable images and registry hives loaded by the kernel all appear in RAM, and sometimes that is the only accessible copy of a file that has since been deleted. But it is a fragmentary and time-limited view: filesystem metadata, event-log history and unallocated space are disk questions, and a memory image is no substitute for them.
saying these in an interview costs you the question
- Describes memory as just a faster copy of disk
- Assumes a running program must have a file on disk
- Trusts the event log's command line to always be present
- Treats a recovered credential as proof it was stolen
- Claims a memory image contains everything a disk image does