volatility3 icon indicating copy to clipboard operation
volatility3 copied to clipboard

CLI: Add support for a configuration options file

Open ikelos opened this issue 3 years ago • 0 comments

This adds support for creating a ~/.config/volatility3/vol.json or volshell.json file to handle standard command line parameters. The ordering will go:

Command line parameter else JSON command line parameter else Constants.py file else Hard coded default

The last two may be slightly conflated, since the hard coded default might be the value from the constants.py file.

I'd considered adding the CLI config to the volatility context config, but I think that might muddy the waters, with the UI variables accessible to plugins. Plugins should not need to be interrogating the UI, the UI should tell the plugin everything it needs to know upfront.

This doesn't immediately deal with parameters that aren't exposed by the CLI, but it does offer the ability for the JSON to store additional options that could be used by other features (such as renderers). I still feel these options should be exposed programmatically, so different UIs can offer means of setting them (since not all other UIs will use the config file). I still think this is a reasonable solution, slots in cleanly to the UI and provides expansion capability with a bit more consideration. JSON might be a little too descriptive, given the CLI technically only takes specific types, but I think it will help with future expansion, and we've got space for type checking on load.

ikelos avatar May 29 '22 22:05 ikelos