Windows Memory Analysis in Depth: Cheat Sheet For
Windows Memory Analysis in Depth: Cheat Sheet For
FORENSICS 526:
Cheat Sheet for Windows Memory Analysis In Depth
METHODS IN MEMORY ANALYSIS Bulk Extractor – Stream‐based Parser Common Assembly Instructions s
The shortcuts and tips on this cheat sheet are bulk_extractor <options> imagefile
PUSH Push onto stack (PUSH Source)
provided to sharpen your skills and speed your ‐e use specified scanner + defaults
response time as we navigate through SANS FOR526; POP Pop from stack (POP Dest)
‐E use specified scanner ONLY
Windows Memory Analysis In Depth.
‐r alert list Add Dest,Source
ADD
Tool Usage & Syntax (Dest=Dest+Source)
‐w stop (white) list
grep‐ searches specified file for a PATTERN ‐O output directory (to be created) SUB Subtract Dest,Src (Dest=Dest‐Src)
grep <option> PATTERN <file> AND Logical AND (AND Dest, Source)
Common x86 Registers and Uses
‐i case insensitive pattern
EAX Addition, multiplication, function results OR Logical OR (OR Dest, Source)
‐v show all that do not contain
‐b print byte offset with output
ECX Counter MOV Move (copy) (Dest=Source)
‐A# print # lines after match Base for referencing function arguments XCHG Exchange (A=B, B=A)
EBP
(EBP+value) and local variables (EBP‐
‐B# print # lines before match JMP
value) Unconditional Jump
‐C# print # lines before & after
ESP Points to the current “top” of the stack; JNZ Jump if not zero
\ special character escape changes via PUSH, POP, and others JZ
srch_strings ‐ outputs character strings Jump if zero
(default min. 4 chars in length) EIP Points to the next instruction
CALL Call Subroutine
srch_strings <option> <file> > Contains flags that store outcomes of
EFLAGS
output.txt computations (e.g., Zero and Carry flags) Logical Excl OR
XOR
‐a scans an entire file, not (Dest=Dest(exor)Source)
just data section Historical Advances in Memory Analysis Grabs value from top of stack and
‐b print byte offset with output RETN
2005 DFRWS hosted Memory Analysis Challenge jumps to that location
‐# sets min length of characters
2005
FU & Shadow Walker Rootkit created by CMP Performs an implied subtraction
‐e Unicode (16 bit) strings Jamie Butler
l (little endian) http://queue.acm.org/detail.cfm?id=1217264 TEST Performs an implied Boolean AND
xxd ‐ hexadecimal file viewer 2007 Using Every Part of the Buffalo in
DEC Decreases value by one (Op=Op‐1)
xxd <options> <infile> <outfile> Windows Memory Analysis by J.Kornblum
‐s <offset> seek ‐/+ from offset http://jessekornblum.com/publications/di07.html Increases value by one
INC
‐l# stop output after # bytes 2008 Cold Boot Attack research from Princeton (Op=Op+1)
nsrllookup – stream based data parser https://citp.princeton.edu/research/memory/
NOP No operation
md5deep * |nsrllookup –s nsrl.kyr.us 2009 First Prosecution based on Memory
‐u show only unknown hashes (d) Forensics – Det. C. Murphy LEA Load effective address
‐k show only known hashes http://www.youtube.com/watch?v=XIiQIYt8JjI
Authored by Alissa Torres, Certified SANS Instructor. Creative Commons v3 “Attribution” License for this cheat sheet version 1.5.