diff --git a/volatility/framework/symbols/intermed.py b/volatility/framework/symbols/intermed.py index 55e5bd611..663bd0ffc 100644 --- a/volatility/framework/symbols/intermed.py +++ b/volatility/framework/symbols/intermed.py @@ -12,6 +12,7 @@ from abc import ABCMeta import volatility from volatility import schemas, symbols from volatility.framework import class_subclasses, constants, exceptions, interfaces, objects, layers +from volatility.framework.configuration import requirements from volatility.framework.symbols import native, metadata vollog = logging.getLogger(__name__) @@ -204,6 +205,11 @@ class IntermediateSymbolTable(interfaces.symbols.SymbolTableInterface): context.symbol_space.append(table) return table_name + @classmethod + def get_requirements(cls) -> typing.List[interfaces.configuration.RequirementInterface]: + return [requirements.StringRequirement("isf_url", + description = "JSON file containing the symbols encoded in the Intermediate Symbol Format")] + class ISFormatTable(interfaces.symbols.SymbolTableInterface, metaclass = ABCMeta): """Provide a base class to identify all subclasses""" diff --git a/volatility/framework/symbols/linux/__init__.py b/volatility/framework/symbols/linux/__init__.py index e3230a691..e32bde5f7 100644 --- a/volatility/framework/symbols/linux/__init__.py +++ b/volatility/framework/symbols/linux/__init__.py @@ -32,8 +32,3 @@ class LinuxKernelIntermedSymbols(intermed.IntermediateSymbolTable): if 'mount' in self.types: self.set_type_class('mount', extensions.mount) - - @classmethod - def get_requirements(cls) -> typing.List[interfaces.configuration.RequirementInterface]: - return [requirements.StringRequirement("isf_url", - description = "JSON file containing the symbols encoded in the Intermediate Symbol Format")] diff --git a/volatility/framework/symbols/windows/__init__.py b/volatility/framework/symbols/windows/__init__.py index ff612d016..0314bb8f4 100644 --- a/volatility/framework/symbols/windows/__init__.py +++ b/volatility/framework/symbols/windows/__init__.py @@ -57,8 +57,3 @@ class WindowsKernelIntermedSymbols(intermed.IntermediateSymbolTable): self.set_type_class('_RTL_BALANCED_NODE', extensions._MMVAD_SHORT) except ValueError: pass - - @classmethod - def get_requirements(cls) -> typing.List[interfaces.configuration.RequirementInterface]: - return [requirements.StringRequirement("isf_url", - description = "JSON file containing the symbols encoded in the Intermediate Symbol Format")]