Image Profile

$ volatility -f <example.raw> imageinfo

Process Analysis

# List processes
$ volatility -f <example.raw> --profile=<profile> pslist

# Process tree
$ volatility -f <example.raw> --profile=<profile> pstree

# Process scan (includes hidden/terminated)
$ volatility -f <example.raw> --profile=<profile> psscan

# Generate graph visualization
$ volatility -f <example.raw> --profile=<profile> psscan --output=dot --output-file=<filename.dot>

# Dump process
$ volatility -f <example.raw> --profile=<profile> procdump -p <pid> -D <output/>

Command Line Artifacts

# Executed commands
$ volatility -f <example.raw> --profile=<profile> cmdscan

# Console outputs
$ volatility -f <example.raw> --profile=<profile> consoles

# Command line arguments (all processes)
$ volatility -f <example.raw> --profile=<profile> cmdline

# Command line for specific PID
$ volatility -f <example.raw> --profile=<profile> cmdline -p <pid>

System Information

# Environment variables
$ volatility -f <example.raw> --profile=<profile> envars

# NTLM password hashes
$ volatility -f <example.raw> --profile=<profile> hashdump

Network

$ volatility -f <example.raw> --profile=<profile> netscan

DLL & Module Analysis

# List loaded DLLs
$ volatility -f <example.raw> --profile=<profile> dlllist -p <pid>

# Dump specific DLL
$ volatility -f <example.raw> --profile=<profile> dlldump -p <pid> -b <base_address> -D <output_directory>

Registry

$ volatility -f <example.raw> --profile=<profile> dumpregistry -D <output_directory>

File Operations

# Scan for files
$ volatility -f <example.raw> --profile=<profile> filescan | grep <filename>

# Extract file from memory
$ volatility -f <example.raw> --profile=<profile> dumpfiles -Q <dataoffset> -D <output-directory>

Change file extension after extracting based on actual file type.

Memory Analysis

# Extract process memory (change extension to .data)
$ volatility -f <example.raw> --profile=<profile> memdump -p <pid> -D <output>

# List handles
$ volatility -f <example.raw> --profile=<profile> handles -p <pid> -t <type>
# Types: mutant, process, file, key, etc.

# Find injected code / suspicious memory allocations
$ volatility -f <example.raw> --profile=<profile> malfind -p <pid>

# Dump memory region
$ volatility -f <example.raw> --profile=<profile> vaddump -b <base_address> -D <output_directory>

Yara Scanning

$ volatility -f <example.raw> --profile=<profile> yarascan -Y "<yara_rule>"

Browser Artifacts

# Chrome history (requires volatility-plugins)
# Download: https://github.com/superponible/volatility-plugins
$ volatility --plugins=plugins/ -f <example.raw> --profile=<profile> chromehistory > <output_file>

# IE history
$ volatility -f <example.raw> --profile=<profile> iehistory

Alternative: extract browser history file and open it in SQLite.

Quick Reference

Command Purpose
imageinfo Identify image profile
pslist List processes
pstree Process tree view
psscan Find all processes (including hidden)
cmdscan Extract command history
consoles Console output history
envars Environment variables
hashdump Dump password hashes
netscan Network connections
filescan Scan for files in memory
dumpfiles Extract files
dlllist Loaded modules
malfind Find injected code
mftparser Export NTFS MFT
yarascan Scan with Yara rules