mirror of
https://github.com/volatilityfoundation/volatility3.git
synced 2026-08-20 05:35:41 +02:00
87 lines
3.3 KiB
Python
87 lines
3.3 KiB
Python
# This file is Copyright 2019 Volatility Foundation and licensed under the Volatility Software License 1.0
|
|
# which is available at https://www.volatilityfoundation.org/license/vsl-v1.0
|
|
#
|
|
"""Volatility 3 Constants.
|
|
|
|
Stores all the constant values that are generally fixed throughout
|
|
volatility This includes default scanning block sizes, etc.
|
|
"""
|
|
import enum
|
|
import os.path
|
|
import sys
|
|
from typing import Optional, Callable
|
|
|
|
import volatility.framework.constants.linux
|
|
import volatility.framework.constants.windows
|
|
|
|
PLUGINS_PATH = [
|
|
os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "..", "plugins")),
|
|
os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "plugins"))
|
|
]
|
|
"""Default list of paths to load plugins from (volatility/plugins and volatility/framework/plugins)"""
|
|
|
|
SYMBOL_BASEPATHS = [
|
|
os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "..", "symbols")),
|
|
os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "symbols"))
|
|
]
|
|
"""Default list of paths to load symbols from (volatility/symbols and volatility/framework/symbols)"""
|
|
|
|
if hasattr(sys, 'frozen') and sys.frozen:
|
|
# Ensure we include the executable's directory as the base for plugins and symbols
|
|
PLUGINS_PATH = [os.path.abspath(os.path.join(os.path.dirname(sys.executable), 'plugins'))] + PLUGINS_PATH
|
|
SYMBOL_BASEPATHS = [os.path.abspath(os.path.join(os.path.dirname(sys.executable), 'symbols'))] + SYMBOL_BASEPATHS
|
|
|
|
BANG = "!"
|
|
"""Constant used to delimit table names from type names when referring to a symbol"""
|
|
|
|
# We use the SemVer 2.0.0 versioning scheme
|
|
VERSION_MAJOR = 1 # Number of releases of the library with a breaking change
|
|
VERSION_MINOR = 0 # Number of changes that only add to the interface
|
|
VERSION_PATCH = 0 # Number of changes that do not change the interface
|
|
VERSION_SUFFIX = "-beta.1"
|
|
|
|
PACKAGE_VERSION = ".".join([str(x) for x in [VERSION_MAJOR, VERSION_MINOR, VERSION_PATCH]]) + VERSION_SUFFIX
|
|
"""The canonical version of the volatility package"""
|
|
|
|
AUTOMAGIC_CONFIG_PATH = 'automagic'
|
|
"""The root section within the context configuration for automagic values"""
|
|
|
|
LOGLEVEL_V = 9
|
|
"""Logging level for a single -v"""
|
|
LOGLEVEL_VV = 8
|
|
"""Logging level for -vv"""
|
|
LOGLEVEL_VVV = 7
|
|
"""Logging level for -vvv"""
|
|
LOGLEVEL_VVVV = 6
|
|
"""Logging level for -vvvv"""
|
|
|
|
CACHE_PATH = os.path.join(os.path.expanduser("~"), ".cache", "volatility3")
|
|
"""Default path to store cached data"""
|
|
|
|
if sys.platform == 'windows':
|
|
CACHE_PATH = os.path.join(os.environ.get("APPDATA", os.path.expanduser("~")), "volatility3")
|
|
os.makedirs(CACHE_PATH, exist_ok = True)
|
|
|
|
LINUX_BANNERS_PATH = os.path.join(CACHE_PATH, "linux_banners.cache")
|
|
""""Default location to record information about available linux banners"""
|
|
|
|
MAC_BANNERS_PATH = os.path.join(CACHE_PATH, "mac_banners.cache")
|
|
""""Default location to record information about available mac banners"""
|
|
|
|
BUG_URL = "https://github.com/volatilityfoundation/volatility3/issues"
|
|
|
|
ProgressCallback = Optional[Callable[[float, str], None]]
|
|
"""Type information for ProgressCallback objects"""
|
|
|
|
|
|
class Parallelism(enum.IntEnum):
|
|
"""An enumeration listing the different types of parallelism applied to
|
|
volatility."""
|
|
Off = 0
|
|
Threading = 1
|
|
Multiprocessing = 2
|
|
|
|
|
|
PARALLELISM = Parallelism.Off
|
|
"""Default value to the parallelism setting used throughout volatility"""
|