Commit Graph
6005 Commits
Author SHA1 Message Date
David McDonald 87cc571fbb ShimcacheMem: Fix symbol table
These SHIM_CACHE_ENTRY offsets aren't correct - should be identical to
those in the other XP symbol tables.
2025-04-14 11:43:57 -05:00
ikelosandGitHub 1b31357665 Merge pull request #1766 from volatilityfoundation/thrdscan/filtering_and_tracebacks
Windows ThrdScan: Thread filtering, type-hints and tracebacks
2025-04-13 15:55:43 +01:00
David McDonald b82458e365 Windows Thrdscan: Convert from PATCH to MINOR version bump 2025-04-10 09:51:32 -05:00
David McDonald 6237950991 Windows: Revert unneeded version bumps 2025-04-10 09:50:49 -05:00
ikelosandGitHub e00f0961c2 Merge pull request #1767 from volatilityfoundation/bugfix/layer_deletion_exception_msg
Layers: Fix exception message
2025-04-10 09:51:26 +01:00
David McDonald 7192730dea Layers: Fix exception message
Updates the exception message to report the correct dependency instead
of the layer name itself. Instead of reporting the actual dependency, it
was reporting, for example 'Layer layer_name is depended upon by
layer_name'.
2025-04-09 22:55:50 -05:00
David McDonald f091641920 Framework: Bump patch version number
Bumping the framework patch version number due to bugfix in windows'
`EPROCESS` extension class' `is_valid()` method.
2025-04-09 21:50:36 -05:00
David McDonald da73a50662 Windows ThrdScan: Bump patch version number
Bumping patch version due to bug fixes.
2025-04-09 21:49:42 -05:00
ikelosandGitHub 58c8de6bf7 Merge pull request #1765 from Abyss-W4tcher/minimum_alignment_adjustment
[Parity/modules] Adjust module alignment for scanners
2025-04-09 20:35:19 +01:00
David McDonald b35f0a29bc Windows: Remove VAD length check in thread enumeration
This exclusion of threads where there are < 5 vads seems to filter valid
threads (at least, threads where the start address or Win32 start
address values are readable and valid disassembly, and the start time
makes sense in the context of the parent process).
2025-04-08 17:17:53 -05:00
David McDonald aba3b04e8d Windows Thrdscan: Fix thread filtering + tracebacks
Tracebacks were occurring across a number of samples when running the
threads/threadscan plugins due to uncaught `InvalidAddressExceptions`.
Further investigations led to the discovery of some incorrect thread
filtering that was missing valid threads.
2025-04-08 17:17:40 -05:00
David McDonald 64ecd65d2c Windows: Improve type-hints in thrdscan, extensions
This improves type-hinting in the `ThrdScan` class and in the `ETHREAD`
extension class through narrowing the return type of some methods from
`interfaces.objects.ObjectInterface` to their actual return type,
`extensions.ETHREAD`.

Also creates a `NamedTuple` for holding thread info, which cleans up the
type signature and makes the returned value easier for consumers to use.
2025-04-08 17:17:40 -05:00
Abyss Watcher f9bd9fb94e comment wasn't really applicable here 2025-04-08 20:08:15 +02:00
Abyss Watcher 54f64fcab8 comparison harness: module alignment 2025-04-08 19:48:15 +02:00
ikelosandGitHub 842d0e7703 Merge pull request #1763 from volatilityfoundation/inodepages/dump_files_output
InodePages: Add output column and render when dumped
2025-04-08 16:07:41 +01:00
David McDonald 4045b6cc8e InodePages: Add output column and render when dumped
Previously, the InodePages plugin wasn't rendering treegrid columns when
the `--dump` flag was passed. This fixes that, and adds an additional
`Output File` column that displays the name of the file containing the
dumped data.
2025-04-08 09:30:31 -05:00
ikelosandGitHub 01dd867542 Merge pull request #1760 from volatilityfoundation/bugfix/volshell_dt_traceback
Fix traceback in volshell's `dt()`
2025-04-08 08:09:37 +01:00
David McDonald 195f4154e9 Shorten suffix 2025-04-07 16:18:22 -05:00
David McDonald e9a4ea1a9c Fix traceback in volshell's dt()
A `SymbolError` can occur when a type contains a pointer to an opaque
type. For example, `_EPROCESS` can have a member that points to an
`_EPROCESS_QUOTA_BLOCK`, but there is no definition for that type, so
its size and readability can't be determined.

This wraps the block in a try/except, and reports that the type has an
unknown size in the suffix if a `SymbolError` occurs.
2025-04-07 15:39:23 -05:00
ikelosandGitHub b3d1ce319c Merge pull request #1758 from volatilityfoundation/bugfix/mftscan_memory_usage
Windows MFTScan: Memory usage performance fixes
2025-04-07 14:53:29 +01:00
David McDonald 39b3e76efc Add a filename to STANDARD_INFORMATION timeline entries 2025-04-04 17:46:46 -05:00
David McDonald a0ca33b284 Also yield STANDARD_INFORMATION timestamps in timeliner 2025-04-04 11:30:27 -05:00
David McDonald b15e9104e8 Rename methods, add docstrings
Improves the naming of a couple of the new extension class methods to
more accurately reflect the return type, and adds docstrings to
extensions class methods.
2025-04-04 10:32:13 -05:00
David McDonald 8428e81f03 Fix up remaining type-hints
Updates type hints on some fields of the result namedtuples to be their
`objects.Primitive` types instead of Python primitives, and does any
conversion to Python primitives in the generator methods.
2025-04-04 10:30:46 -05:00
David McDonald a5dfc6acb3 Bump required framework version on all three MFTScan plugins 2025-04-03 18:06:23 -05:00
David McDonald de117042fe Remove symbol_table_name from object constructor
Get from `self.vol.type_name` instead
2025-04-03 18:04:43 -05:00
David McDonald 41de562e55 Revert "Add versioning to MFT extension classes"
This reverts commit 1d20e65759.
2025-04-03 17:56:16 -05:00
David McDonald ebbbe913dc Convert remaining values to Python primitives 2025-04-03 17:55:42 -05:00
David McDonald 1d20e65759 Add versioning to MFT extension classes 2025-04-03 17:39:14 -05:00
David McDonald 8b308133f5 Bump required version numbers 2025-04-03 17:32:25 -05:00
David McDonald 9f85e1465e Major version bumps for all three plugins 2025-04-03 17:19:17 -05:00
David McDonald 5fda7409eb Log InvalidAddressException instances 2025-04-03 17:18:20 -05:00
David McDonald 41cf17ed65 Refactor: Ditch dictionary usage, eliminate callbacks
This simplifies the design of these plugins by moving as much MFTEntry
specific data into the extension class (caching attributes, since
they'll need to be accessed repeatedly) and moving away from the
callback-based implementation to one where classmethods consume
`mft.MFTEntry` objects in order to produce their values.

These changes do two important things:
- They allow us to preserve `object.String` objects until the generator
  function, which makes the public interface much better since people
  can navigate back the the source of the data within their context
- Completely eliminates the `record_map` that was causing so much memory
  consumption.
2025-04-03 17:18:20 -05:00
David McDonald 43e6fefe39 Add attribute iterator to MFTEntry extension class 2025-04-03 11:33:56 -05:00
ikelosandGitHub 6ddb0fef29 Merge pull request #1748 from eve-mem/volshell_display_types_pointer_upgrade_2025
Volshell: Display types pointer upgrade
2025-04-03 17:21:30 +01:00
eve 69e3c7d9ae Volshell: use built in formatting rather than hex() function 2025-04-03 17:01:21 +01:00
EveandGitHub 61c67b63d4 Merge branch 'develop' into volshell_display_types_pointer_upgrade_2025 2025-04-03 16:54:28 +01:00
eve 86945492a7 Volshell: display if embedded struct offest is unreadable in dt output 2025-04-03 16:49:27 +01:00
David McDonald 4492da0263 Create attribute iterator method
Moves logic for iterating through `MFTEntry` attributes into a new
`attributes()` method on the extension class.
2025-04-03 10:40:05 -05:00
eve b1c1645657 volshell: inform user that value displayed is only an offset for types like embedded structs 2025-04-03 16:38:55 +01:00
Mike Auty ed1b1f5369 Avoid bumping the version too quickly without reason 2025-04-03 16:30:25 +01:00
Mike Auty b01c17f419 CLI: Fix bad typing issue in pretty printer
Fixes #1759
2025-04-03 16:24:47 +01:00
David McDonald e84036c5a6 Add missing 'e' to variable names 2025-04-03 10:02:08 -05:00
57524edb87 Remove unnecessary quotes from type hints
Co-authored-by: ikelos <ikelos@users.noreply.github.com>
2025-04-03 09:58:35 -05:00
David McDonald 86c5c16ed6 Windows MFTScan Plugins: Performance fixes
There was a subtle issue that was causing substantial performance issues
in the MFTScan plugins. The `record_map` was purportedly of type
`Dict[str, Tuple[int, str, int]]`, but in reality, the second member was
a list, and its `str` item was actually being populated with unprocessed
values from method calls on the MFT extension classes, which actually
return `object.String`. These objects are substantially larger than
basic `str` types:

```
[ins] In [5]: pympler.asizeof.asizeof(rec_name)
Out[5]: 312648

[ins] In [6]: pympler.asizeof.asizeof(str(rec_name))
Out[6]: 64
```

This caused this dictionary to grow in size to several gigabytes on
larger samples, resulting in thrashing and OOM errors.
2025-04-02 15:46:47 -05:00
David McDonald 3c3b2b3bbd MFT Extensions: Fix type hints
These type hints are a bit misleading, and have been updated to reflect
their real return type.
2025-04-02 15:16:15 -05:00
ikelosandGitHub 0fb721e219 Merge pull request #1757 from volatilityfoundation/fix_tests
Tests: Fix Userassist and MFTScan testdata
2025-04-02 21:04:46 +01:00
David McDonald 5befbf8629 Tests: Fix MFTScan testdata
These test values needed updating now that the `LayerData` type is used
and presents the data a little differently than before.
2025-04-02 14:08:18 -05:00
David McDonald e446c1081d Remove debugging call 2025-04-02 09:43:20 -05:00
David McDonald 0b1bbb87ee Windows Tests: Update userassist JSON output
The new layer data type renders the output a little differently, and the
plugin also seems to render 'N/A' for a missing value where previously
it was an empty string.
2025-04-02 09:36:07 -05:00