volatility manual page
Synopsis
- volatility [-h] [-c CONFIG] [–parallelism [{processes,threads,off}]]
[-e EXTEND] [-p PLUGIN_DIRS] [-s SYMBOL_DIRS] [-v] [-l LOG] [-o OUTPUT_DIR] [-q] [-r RENDERER] [-f FILE] [–write-config] [–save-config SAVE_CONFIG] [–clear-cache] [–cache-path CACHE_PATH] [–offline] [–single-location SINGLE_LOCATION] [–stackers [STACKERS …]] [–single-swap-locations SINGLE_SWAP_LOCATIONS] <plugin> …
Description
Volatility is a program used to analyze memory images from a computer and extract useful information from windows, linux and mac operating systems. 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.
The command line tool allows developers to distribute and easily use the plugins of the framework against memory images of their choice.
Plugins may define their own options, these are dynamic and therefore not listed in this man page. Plugin options must be listed after the plugin name. A list of the options for a specific plugin is available by running “volatility <plugin> –help”.
Options
- -h, --help
Shows a help message that lists these options, and the available plugins. If used after a plugin has been chosen, help will show any options which that particular plugin can accept.
- -c CONFIG, --config CONFIG
Loads a JSON configuration from the CONFIG file
- –parallelism [{processes,threads,off}]
Enables parallelism (defaults to processes if no argument given). The parallelism can be either off, or multithreaded (but due to python’s GIL still only takes up a single CPU) or multiprocessed (which spawns other processes, but can use the whole of the CPU). Currently parallelism is experimental and provides minimal benefits whilst still being developed
- -e EXTEND, --extend EXTEND
Extends an existing configuration with a single directive as specified by EXTEND. Extensions must be of the form configuration.item.name=value
- -p PLUGIN_DIRS, --plugin-dirs PLUGIN_DIRS
Specified as a semi-colon separated list of paths that contain directories where plugins may be found. These paths are searched before the default paths when loading python files for plugins. This can therefore be used to override built-in plugins. NOTE: All python code within this directory and any subdirectories will be evaluated during normal operation.
- -s SYMBOL_DIRS, --symbol-dirs SYMBOL_DIRS
SYMBOL_DIRS is a semi-colon separated list of paths that contain symbol files or symbol zip packs. Symbols must be within a particular directory structure if they depend on the operating system of the symbols, whilst symbol packs must be in the root of the directory and named after the operating system to which they apply.
- -v, --verbose
A flag which can be used multiple times (up to six, -vvvvvv), each time increasing the level of detail in the logs produced.
- -l LOG, --log LOG
Writes all logs (even those not displayed on screen) to the file specified by LOG.
- -o OUTPUT_DIR, --output-dir OUTPUT_DIR
Should volatility generate any files during its run (such as a dump plugin), the files will be created in the OUTPUT_DIR directory. This defaults to the current working directory.
- -q, --quiet
When present, this flag mutes the progress feedback for operations. This can be beneficial when piping the output directly to a file or another tool.
- -r RENDERER, --renderer RENDERER
Specifies the output format in which to display results. The default is the quick renderer, which produces output immediately at the cost of spacing for columns. Pretty outputs the results at the end, but aligns them all to column width. json and jsonl output JSON (or JSON lines) format, which can be used directly in conjunction with -q.
- -f FILE, --file FILE
This takes the FILE value, and formats it as a file:// URL for use with the –single-location field, which is the image that the automagic will attempt to build upon, and can be considered the input for the program.
- --write-config
Deprecated Use of –write-config has been deprecated, replaced by –save-config
- --save-config
This flag specifies that volatility should write or overwrite a file called config.json in the current directory. The file will contain the necessary JSON configuration to recreate the environment that the plugin was previously run in. This configuration may be accepted by other plugins, but there’s no guarantee that plugins use the same configuration options.
- --clear-cache
Clears out all short-term cached items.
- --cache-path
Change the default path used to store the cache.
- --offline
Run offline mode (defaults to false). Do not search online for additional JSON files, remote windows symbol tables, nor linux/mac banner repositories.
- --single-location SINGLE_LOCATION
This specifies a URL which will be downloaded if necessary, and built upon by the automagic and, since most plugins require a single memory image, can be considered the input for the program.
- --stackers STACKERS
Creates the list of stackers to use based on the config option.
- --single-swap-locations SINGLE_SWAP_LOCATIONS
A comma-separated list of swap files to be considered as part of the memory image specified by the single-location or file parameters.
- <plugin>
The name of the plugin to execute (these are usually categorized by the operating system, such as windows.pslist.PsList). Any substring that uniquely matches the desired plugin name can be used. As such hivescan would match windows.registry.hivescan.HiveScan, but pslist is ambiguous because it could match windows.pslist or linux.pslist.
Overriding options
The default values for the command line interface are defined by constants within the code, but can be overridden by creating a JSON file (%APPDATA%/volatility3/vol.json for Windows systems, or ~/.config/volatility3/vol.json or volshell.json for all others).
The format of this file is a JSON dictionary, containing the options above and their value. It should be noted that the ordering is (x < y means x is overridden by y):
in-built default value < config file value < command line parameter
It should also be noted that boolean flags (such as offline) that are overridden as true will not be unset by not specifying the command line flag.