The Volatility Framework is an an advanced, completely open collection of tools for memory forensics, implemented in Python under the GNU General Public License, for the extraction of digital artifacts from volatile memory (RAM) samples.
The extraction techniques are performed completely independent of the system being investigated but offer visibility into the runtime state of the system. The framework is intended to introduce people to the techniques and complexities associated with extracting digital artifacts from volatile memory samples and provide a platform for further work into this exciting area of research.
Volatility does not provide memory sample acquisition capabilities. For acquisition, there are both free and commercial solutions available.
- A single, cohesive framework analyzes RAM dumps from 32- and 64-bit windows, linux, mac, and android systems.
- It’s Open Source GPLv2, which means you can read it, learn from it, and extend it.
- It’s written in Python, an established forensic and reverse engineering language with loads of libraries that can easily integrate into volatility.
- Runs on windows, linux, or mac analysis systems (anywhere Python runs) – a refreshing break from other memory analysis tools that only run on windows and require .NET installations and admin privileges just to open.
- Extensible and scriptable API gives you the power to go beyond and continue innovating.
- Unparalleled feature sets based on reverse engineering and specialized research.
- Comprehensive coverage of file formats – volatility can analyze raw dumps, crash dumps, hibernation files, VMware .vmem, VMware saved state and suspended files (.vmss/.vmsn), VirtualBox core dumps, LiME (Linux Memory Extractor), expert witness (EWF), and direct physical memory over Firewire.
- Fast and efficient algorithms let you analyze RAM dumps from large systems without unnecessary overhead or memory consumption.
- Serious and powerful community of practitioners and researchers who work in the forensics, IR, and malware analysis fields. It brings together contributors from commercial companies, law enforcement, and academic institutions around the world.
- Forensics/IR/malware focus – Volatility was designed by forensics, incident response, and malware experts to focus on the types of tasks these analysts typically form.
File Format Support
Volatility supports a variety of sample file formats and the ability to convert between these formats:
- Raw linear sample (dd)
- Hibernation file (from Windows 7 and earlier)
- Crash dump file
- VirtualBox ELF64 core dump
- VMware saved state and snapshot files
- EWF format (E01)
- LiME (Linux Memory Extractor) format
- Mach-O file format
- QEMU virtual machine dumps
- HPAK (FDPro)
The most basic Volatility commands are constructed as shown below. Replace plugin with the name of the plugin to use, image with the file path to your memory image, and profile with the name of the profile (such as Win7SP1x64).
$ python vol.py [plugin] –f [image] —profile=[profile]
Here is an example:
$ python vol.py pslist –f /path/to/memory.img —profile=Win7SP1x64
For everything beyond this example, such as controlling the output format, listing the available plugins and profiles, or supplying plugin-specific options, see the full documentation.
Here is what you need for the core functionality:
- A Windows, Linux, or Mac OS X machine
- Python version 2.6 or greater (but not 3.x)
Some plugins require third party libraries which you can get here:
- Distorm3 (Malware Plugins, Volshell)
- Yara (Malware Plugins)
- PyCrypto (Core)
- OpenPyxl (xlsx rendering for all plugins)
- Pil (Screenshot plugin)
You can download Volatility Framework here:
Or read more here.