mirror of
https://github.com/volatilityfoundation/volatility3.git
synced 2026-08-21 22:12:23 +02:00
37 lines
1.2 KiB
Python
37 lines
1.2 KiB
Python
from abc import ABCMeta, abstractmethod
|
|
|
|
from volatility.framework import validity
|
|
|
|
|
|
class AutomagicInterface(validity.ValidityRoutines, metaclass = ABCMeta):
|
|
"""Class that defines an automagic component that can help fulfill a Requirement"""
|
|
|
|
priority = 10
|
|
|
|
@abstractmethod
|
|
def __call__(self, context, config_path, configurable):
|
|
"""Runs the automagic over the configurable"""
|
|
|
|
|
|
class StackerLayerInterface(validity.ValidityRoutines, metaclass = ABCMeta):
|
|
"""Class that takes a lower layer and attempts to build on it
|
|
|
|
stack_order determines the order (from low to high) that stacking layers
|
|
should be attempted lower levels should have lower stack_orders
|
|
"""
|
|
|
|
stack_order = 0
|
|
|
|
@classmethod
|
|
@abstractmethod
|
|
def stack(self, context, layer_name):
|
|
"""Method to determine whether this builder can operate on the named layer,
|
|
If so, modify the context appropriately.
|
|
|
|
Returns the name of any new_layer stacked on top of this layer or None
|
|
The stacking is therefore strictly linear rather than tree driven.
|
|
|
|
Configuration options provided by the context are ignored, and defaults
|
|
are to be used by this method to build a space where possible
|
|
"""
|