volatility3.plugins.linux.tracing.tracepoints module
- class CheckTracepoints(context, config_path, progress_callback=None)[source]
Bases:
PluginInterface
Detect tracepoints hooking
Investigate the tracepoints subsystem to uncover kernel attached probes, which can be leveraged to hook kernel functions and modify their behaviour.
- Parameters:
- build_configuration()
Constructs a HierarchicalDictionary of all the options required to build this component in the current context.
Ensures that if the class has been created, it can be recreated using the configuration built Inheriting classes must override this to ensure any dependent classes update their configurations too
- Return type:
- property config: HierarchicalDict
The Hierarchical configuration Dictionary for this Configurable object.
- property context: ContextInterface
The context object that this configurable belongs to/configuration is stored in.
- classmethod get_requirements()[source]
Returns a list of Requirement objects for this plugin.
- Return type:
- classmethod iterate_tracepoint_funcs(context, layer_name, tracepoint)[source]
Extract probes represented by tracepoint_func structs from a tracepoint funcs member.
- Parameters:
tracepoint (
ObjectInterface
) – The tracepoint struct to parse- Yields:
An iterable of tracepoint_func structs
- Return type:
- classmethod iterate_tracepoints_array(context, kernel_name)[source]
Iterate over (tracepoint_ptr_t *)__start___tracepoints_ptrs. Handles CONFIG_HAVE_ARCH_PREL32_RELOCATIONS.
- Return type:
- Returns:
A list of tracepoint structs
- classmethod make_subconfig(context, base_config_path, **kwargs)
Convenience function to allow constructing a new randomly generated sub-configuration path, containing each element from kwargs.
- Parameters:
context (
ContextInterface
) – The context in which to store the new configurationbase_config_path (
str
) – The base configuration path on which to build the new configurationkwargs – Keyword arguments that are used to populate the new configuration path
- Returns:
The newly generated full configuration path
- Return type:
- property open
Returns a context manager and thus can be called like open
- classmethod parse_tracepoint(context, kernel_name, known_modules, tracepoint, run_hidden_modules=True)[source]
Parse a tracepoint struct to highlight tracepoints kernel hooking.
- Parameters:
known_modules (
Dict
[str
,List
[module
]]) – A dict of known modules, used to locate callbacks origin. Typically obtained through modxview.run_modules_scanners().tracepoint (
ObjectInterface
) – The tracepoint struct to parserun_hidden_modules (
bool
) – Whether to run the hidden_modules plugin or not. Note: it won’t be run, even if specified, if the “hidden_modules” key is present in known_modules.
- Yields:
An iterable of ParsedTracepointFunc dataclasses, containing a selection of useful fields related to a tracepoint struct
- Return type:
- run()[source]
Executes the functionality of the code.
Note
This method expects self.validate to have been called to ensure all necessary options have been provided
- Returns:
A TreeGrid object that can then be passed to a Renderer.
- classmethod unsatisfied(context, config_path)
Returns a list of the names of all unsatisfied requirements.
Since a satisfied set of requirements will return [], it can be used in tests as follows:
unmet = configurable.unsatisfied(context, config_path) if unmet: raise RuntimeError("Unsatisfied requirements: {}".format(unmet)
- Return type:
- version = (1, 0, 0)