[core, constants] : add OS and framework supported architectures #1247
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hi,
To increase general scalability, in the multi-architectures handling task, I would like to propose a way to unify and remove "string hardcoded" values all around the framework. Indeed, if a new architecture is added, most of the plugins will need to be updated to support this new layer. If there are a few cases where a plugin would work on Intel but not an AArch64 (although I do not see right now any reason), the plugin could still use a custom set of supported architectures.
With this PR, the plugins could later be updated from :
volatility3/volatility3/framework/plugins/windows/pslist.py
Line 33 in 517f46e
to :
When a new (CPU) architecture is implemented, this should allow to reduce the amount of small changes in each plugin, and unify everything.
This is also a starting point to resolve the hardcoded
intel.Intel
checks, which are in factCPU layers
checks.Going from :
volatility3/volatility3/framework/automagic/linux.py
Lines 44 to 47 in 517f46e
or equivalent. This can be applied easily inside plugins checks.
ps : For this automagic bit, it can be a bit trickier when virtual CPU layers stacking occurs, as discussed here : #1088 (comment).
I created a new file, as inserting the code in
constants.py
resulted in circular imports.Thanks by advance for the reviews :)