| name | volatility3 |
| description | Auth/lab ref: Volatility3 memory forensics; process, module, network, registry, file, and suspicious-artifact triage from RAM images. |
| license | VSL-1.0 |
| compatibility | Python 3.6+; Linux/macOS/Windows. |
| metadata | {"author":"AeonDave","version":"2.2"} |
Volatility 3
Memory forensics — extract processes, network state, credentials, files, and malware artifacts from RAM images.
Installation
pip install volatility3
git clone https://github.com/volatilityfoundation/volatility3 && cd volatility3 && pip install -e .
python3 vol.py --help
alias vol='python3 /path/to/volatility3/vol.py'
Symbol Tables (Windows)
Volatility 3 auto-downloads symbol tables for most Windows versions. If offline:
python3 vol.py -f memory.raw isfinfo
Base Syntax
python3 vol.py -f <memory_image> <plugin>
python3 vol.py -f memory.raw windows.pslist
python3 vol.py -f memory.raw linux.pslist
Output to file:
python3 vol.py -f memory.raw windows.pslist > pslist.txt 2>/dev/null
Windows Plugins — Full Reference
Process Analysis
python3 vol.py -f memory.raw windows.pslist
python3 vol.py -f memory.raw windows.pstree
python3 vol.py -f memory.raw windows.psscan
diff <(python3 vol.py -f memory.raw windows.pslist 2>/dev/null | awk '{print $2}' | sort) \
<(python3 vol.py -f memory.raw windows.psscan 2>/dev/null | awk '{print $2}' | sort)
python3 vol.py -f memory.raw windows.cmdline
python3 vol.py -f memory.raw windows.dlllist
python3 vol.py -f memory.raw windows.handles
python3 vol.py -f memory.raw windows.dlllist --pid 1234
python3 vol.py -f memory.raw windows.handles --pid 1234
Key fields in pslist:
PID / PPID — process and parent ID
ImageFileName — process name (max 15 chars — truncated!)
CreateTime — when process started
Offset(V) — virtual memory address
Suspicious indicators:
svchost.exe with no parent services.exe
explorer.exe with parent other than userinit.exe
- Duplicate
lsass.exe, csrss.exe, smss.exe
- Process name with extra space or unicode lookalike
Network Analysis
python3 vol.py -f memory.raw windows.netstat
python3 vol.py -f memory.raw windows.netscan
python3 vol.py -f memory.raw windows.netscan 2>/dev/null | sort -k5 -n
Fields: LocalAddr, LocalPort, ForeignAddr, ForeignPort, State, PID, Owner, Created
Memory Region Analysis
python3 vol.py -f memory.raw windows.vadinfo --pid 1234
python3 vol.py -f memory.raw windows.vadinfo 2>/dev/null | grep -E "RWX|PAGE_EXECUTE_READWRITE"
python3 vol.py -f memory.raw windows.memmap --pid 1234
python3 vol.py -f memory.raw windows.memmap --pid 1234 --dump
Code Injection Detection
python3 vol.py -f memory.raw windows.malfind
python3 vol.py -f memory.raw windows.malfind --dump --pid 1234
Malfind output pattern — injection:
4608 explorer.exe 0x400000 PAGE_EXECUTE_READWRITE MZ....
DLL and Module Analysis
python3 vol.py -f memory.raw windows.dlllist
python3 vol.py -f memory.raw windows.ldrmodules
python3 vol.py -f memory.raw windows.ldrmodules 2>/dev/null | grep "False"
python3 vol.py -f memory.raw windows.modules
python3 vol.py -f memory.raw windows.modscan
Credential Extraction
v2.28+: windows.hashdump, windows.cachedump, and windows.lsadump were removed. Use registry hive dump + secretsdump instead.
mkdir hives
python3 vol.py -f memory.raw -o hives windows.registry.hivelist --dump
secretsdump.py \
-sam hives/registry.SAM.*.hive \
-system hives/registry.SYSTEM.*.hive \
-security hives/registry.SECURITY.*.hive \
LOCAL
python3 vol.py -f memory.raw windows.hashdump
python3 vol.py -f memory.raw windows.cachedump
python3 vol.py -f memory.raw windows.lsadump
Note: First run requires internet to fetch the ntkrnlmp symbol pack for the target OS version. Run foreground or in a persistent session — background jobs (e.g. nohup &) may be killed when the shell idles.
Registry
python3 vol.py -f memory.raw windows.registry.hivelist
python3 vol.py -f memory.raw windows.registry.printkey --key "SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
python3 vol.py -f memory.raw windows.registry.hivelist --dump
File Extraction
python3 vol.py -f memory.raw windows.filescan
python3 vol.py -f memory.raw windows.filescan 2>/dev/null | grep -i ".exe"
python3 vol.py -f memory.raw windows.filescan 2>/dev/null | grep -i "flag"
python3 vol.py -f memory.raw windows.dumpfiles --virtaddr 0xXXXXXXXXXXXX
python3 vol.py -f memory.raw windows.dumpfiles
python3 vol.py -f memory.raw windows.procdump --pid 1234
Process and Memory Dump
python3 vol.py -f memory.raw windows.memmap --pid 1234 --dump
python3 vol.py -f memory.raw windows.procdump --pid 1234
python3 vol.py -f memory.raw windows.dlllist --pid 1234 --dump
strings -n 8 pid.1234.0x400000.dmp | grep -i flag
User and Session
python3 vol.py -f memory.raw windows.sessions
python3 vol.py -f memory.raw windows.getservicesids
python3 vol.py -f memory.raw windows.envars --pid 1234
python3 vol.py -f memory.raw windows.clipboard
Other Useful Plugins
python3 vol.py -f memory.raw windows.scheduled_tasks
python3 vol.py -f memory.raw windows.svcscan
python3 vol.py -f memory.raw windows.handles --pid 1234 2>/dev/null | grep Mutant
python3 vol.py -f memory.raw windows.atoms
python3 vol.py -f memory.raw windows.ssdt
Linux Plugins
python3 vol.py -s /path/to/symbols -f memory.raw linux.pslist.PsList
python3 vol.py -f memory.raw linux.pslist.PsList
python3 vol.py -f memory.raw linux.pstree.PsTree
python3 vol.py -f memory.raw linux.psscan.PsScan
python3 vol.py -f memory.raw linux.psaux.PsAux
python3 vol.py -f memory.raw linux.envars.Envars
python3 vol.py -f memory.raw linux.sockstat.Sockstat
python3 vol.py -f memory.raw linux.sockscan.Sockscan
python3 vol.py -f memory.raw linux.lsof.Lsof
python3 vol.py -f memory.raw linux.proc.Maps
python3 vol.py -f memory.raw linux.pagecache.Files
python3 vol.py -f memory.raw linux.lsmod.Lsmod
python3 vol.py -f memory.raw linux.malware.hidden_modules.Hidden_modules
python3 vol.py -f memory.raw linux.malware.modxview.Modxview
python3 vol.py -f memory.raw linux.malware.check_modules.Check_modules
python3 vol.py -f memory.raw linux.kmsg.Kmsg
python3 vol.py -f memory.raw linux.tracing.tracepoints.CheckTracepoints
python3 vol.py -f memory.raw linux.tracing.ftrace.CheckFtrace
Load references/linux-rootkit-triage.md when a Linux dump shows hidden modules or processes, incomplete network listings, kernel taints, tracepoint/ftrace hooks, or a supplied custom ISF.
Investigation Workflows
Workflow 1: Full Windows triage
MEM="memory.raw"
vol() { python3 vol.py -f "$MEM" "$@" 2>/dev/null; }
vol windows.pslist > pslist.txt
vol windows.psscan > psscan.txt
vol windows.pstree
vol windows.netscan > netscan.txt
vol windows.cmdline > cmdline.txt
diff <(awk '{print $2}' pslist.txt | sort) <(awk '{print $2}' psscan.txt | sort)
grep -E "443|8080|4444|1337" netscan.txt
grep -E "Temp|AppData|ProgramData" cmdline.txt
vol windows.malfind > malfind.txt
grep -E "MZ|PAGE_EXECUTE_READWRITE" malfind.txt
mkdir -p hives; vol -o hives windows.registry.hivelist --dump
secretsdump.py -sam hives/registry.SAM.*.hive -system hives/registry.SYSTEM.*.hive -security hives/registry.SECURITY.*.hive LOCAL
vol windows.filescan > filescan.txt
grep -iE "flag|secret|password|\.txt|\.docx" filescan.txt
Workflow 2: Find and extract suspicious process
python3 vol.py -f memory.raw windows.psscan 2>/dev/null | grep -i "cmd\|powershell\|wscript"
python3 vol.py -f memory.raw windows.cmdline --pid 1234
python3 vol.py -f memory.raw windows.malfind --pid 1234
python3 vol.py -f memory.raw windows.procdump --pid 1234
strings -n 8 pid.1234.*.exe | grep -iE "flag|key|pass|http|C2"
Workflow 3: File extraction from memory
python3 vol.py -f memory.raw windows.filescan 2>/dev/null | grep -iE "flag|\.txt|\.zip|interesting"
python3 vol.py -f memory.raw windows.dumpfiles --virtaddr 0xce89890
file file.0xce89890.dat
strings file.0xce89890.dat
Workflow 4: Linux credential recovery
python3 vol.py -f memory.raw linux.bash.Bash 2>/dev/null
python3 vol.py -f memory.raw linux.envars.Envars 2>/dev/null | grep -iE "pass|key|flag|secret|token"
python3 vol.py -f memory.raw linux.pagecache.Files --find /etc/shadow
python3 vol.py -f memory.raw linux.pagecache.InodePages --find /etc/shadow --dump
Quick Reference — Common Incident Patterns
| Goal | Command |
|---|
| Find hidden processes | windows.psscan vs windows.pslist diff |
| Find C2 connections | windows.netscan → look for unusual foreign IPs/ports |
| Find injected shellcode | windows.malfind → MZ header in RWX VAD |
| Recover deleted file | windows.filescan → windows.dumpfiles --virtaddr |
| Dump credentials | v2.28+: windows.registry.hivelist --dump → secretsdump.py LOCAL; legacy: windows.hashdump/cachedump/lsadump |
| Find target string in memory | windows.filescan grep indicator, then dumpfiles |
| Bash history | linux.bash.Bash |
| Suspicious env var | linux.envars.Envars plus parent/child comparison |
| Network connections | linux.sockstat.Sockstat / windows.netscan |
| Process command line | windows.cmdline |
Resources