Skip to content

Commit 57ef3f5

Browse files
committed
Windows: Adds scheduled tasks plugin
This adds a plugin 'ScheduledTasks' that can decode binary-encoded scheduled tasks from the Windows registry's SOFTWARE hive using a custom reader that extends the `io.BytesIO` class. Decoding operations are intended to be as fault tolerant as possible, swallowing exceptions and returning `None` to account for smear or missing data. Because each task can have mulitple triggers and multiple actions, a single entry is generated for each trigger + action pair. In the event that the either the actions could not be parsed or the triggers could not be parsed due to missing or smeared data, an entry will still be generated using the available information from the other registry value, since trigger and action data is stored separately. Much more information is decoded than is rendered, this was done intentionally to avoid overpopulating the TreeGrid with less pertinent data and to avoid an explosion of trigger and action-specific fields that may not apply to most other entries.
1 parent 4ffaad5 commit 57ef3f5

File tree

3 files changed

+1820
-0
lines changed

3 files changed

+1820
-0
lines changed

volatility3/framework/layers/registry.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,9 @@ def get_key(
170170
return_list specifies whether the return result will be a single
171171
node (default) or a list of nodes from root to the current node
172172
(if return_list is true).
173+
174+
Raises RegistryFormatException if an invalid structure is encountered
175+
Raises KeyError if the key is not found
173176
"""
174177
root_node = self.get_node(self.root_cell_offset)
175178
if not root_node.vol.type_name.endswith(constants.BANG + "_CM_KEY_NODE"):

0 commit comments

Comments
 (0)