mirror of
https://github.com/volatilityfoundation/volatility3.git
synced 2026-09-30 21:44:52 +02:00
Enforce proper requirements on Module objects.
This commit is contained in:
@@ -14,6 +14,7 @@ import logging
|
||||
from typing import Callable, Iterable, List, Optional, Set, Tuple, Union
|
||||
|
||||
from volatility3.framework import constants, interfaces, symbols, exceptions
|
||||
from volatility3.framework.configuration import requirements
|
||||
from volatility3.framework.objects import templates
|
||||
|
||||
vollog = logging.getLogger(__name__)
|
||||
@@ -226,6 +227,20 @@ class Module(interfaces.context.ModuleInterface):
|
||||
# Add the module to the context modules collection
|
||||
return return_val
|
||||
|
||||
@classmethod
|
||||
def get_requirements(cls) -> List[interfaces.configuration.RequirementInterface]:
|
||||
"""Returns a list of Requirement objects for this type of layer."""
|
||||
return [
|
||||
requirements.IntRequirement(name="offset", optional=False),
|
||||
requirements.TranslationLayerRequirement(name="layer_name", optional=False),
|
||||
requirements.TranslationLayerRequirement(
|
||||
name="native_layer_name", optional=True
|
||||
),
|
||||
requirements.SymbolTableRequirement(
|
||||
name="symbol_table_name", optional=False
|
||||
),
|
||||
]
|
||||
|
||||
def object(
|
||||
self,
|
||||
object_type: str,
|
||||
|
||||
@@ -157,6 +157,10 @@ class ModuleInterface(interfaces.configuration.ConfigurableInterface):
|
||||
super().__init__(context, config_path)
|
||||
self._module_name = name
|
||||
|
||||
@classmethod
|
||||
def get_requirements(cls) -> List[interfaces.configuration.RequirementInterface]:
|
||||
"""Returns a list of Requirement objects for this type of layer."""
|
||||
|
||||
@property
|
||||
def _layer_name(self) -> str:
|
||||
return self.config["layer_name"]
|
||||
@@ -175,7 +179,6 @@ class ModuleInterface(interfaces.configuration.ConfigurableInterface):
|
||||
|
||||
def build_configuration(self) -> "interfaces.configuration.HierarchicalDict":
|
||||
"""Builds the configuration dictionary for this specific Module"""
|
||||
|
||||
config = super().build_configuration()
|
||||
|
||||
config["offset"] = self.config["offset"]
|
||||
|
||||
Reference in New Issue
Block a user