6558 Commits
Author SHA1 Message Date
ikelos f9a283d3b0 Merge pull request #2034 from shri7-lab/fix/layer-handler-imports-and-doc-typos
Fix urllib imports, logger names in layer handlers, and doc typos
2026-10-12 00:53:27 +01:00
ikelos 1395e26a45 Merge pull request #2035 from cristianchiriac/fix/windows-bare-raise-outside-except
Windows: Raise TypeError instead of a bare raise in virtmap and crashinfo
2026-10-12 00:42:27 +01:00
ikelos b43a30bcca Merge pull request #2033 from brian-mckinney/fix/dtb-scan-ranges-win11-25h2
automagic/windows: merge DTB fast-path ranges into one contiguous span
2026-10-12 00:12:31 +01:00
ikelos 778acd0ac8 Merge pull request #2025 from Abyss-W4tcher/lazy_iteration_fix
Small optimization: Use "any" to avoid iterating the entire dataclasses.fields list
2026-10-12 00:06:35 +01:00
ikelos 9c57d15f87 Merge pull request #2023 from the-rectifier/linux_pagecache_fix
Add `__folio_index` and fix `memdesc_flags_t` introduction
2026-10-11 23:58:24 +01:00
ikelos 8eecd03a75 Merge pull request #2046 from eve-mem/linux_timekeeper_6.17
Linux: update _get_boottime_raw for task_struct to support kernels >=6.17
2026-10-11 23:22:19 +01:00
eve ea90b85172 Linux: update _get_boottime_raw for task_struct to support kernels >= 6.17 2026-10-08 12:37:57 +01:00
cristianchiriac 6e67325406 Windows: Add a version to the crashinfo plugin 2026-09-27 17:19:57 +03:00
ikelos 3fcb731e0b Merge pull request #2038 from volatilityfoundation/stable
Merge pull request #2037 from volatilityfoundation/release/v2.28.2
2026-09-17 20:52:50 +01:00
ikelos 881e970121 Merge pull request #2037 from volatilityfoundation/release/v2.28.2
Release/v2.28.2
v2.28.2
2026-09-17 20:16:55 +01:00
Tatamis 18ee4fc7ee Windows: Raise TypeError instead of a bare raise in virtmap and crashinfo 2026-09-15 22:36:27 +03:00
Shriyansh Gupta 4155327e4a Fix urllib imports, logger names in layer handlers, and doc typos 2026-09-16 00:14:33 +05:30
Brian McKinney 43bca6019e automagic/windows: merge DTB fast-path ranges into one contiguous span
Windows places the DTB at the lowest free physical page at boot, making the
address a high water mark of early loader allocations.  winload.efi has grown
from 1.52 MiB at build 14393 to 3.62 MiB at build 28000, so the DTB slides to
higher addresses with each release.

The three fast-path ranges in test_sets left two gaps:
  0x2a0000 -- 0x550000  (2.7 MiB)
  0x6f0000 -- 0x900000  (2.1 MiB)

A Windows 11 25H2 image (build 26200.8037, 8 GiB Hyper-V Gen2) has its System
DTB at 0x7b5000, inside the 2.1 MiB gap, causing every plugin to fail.

Merge the three ranges into a single contiguous span:

  (0x150000, 0x150000),  |
  (0x550000, 0x1A0000),  |->  (0x150000, 0x8B0000)
  (0x900000, 0x100000),  |

The merged range ends at 0xa00000, which is the start of the 'very large memory'
range added by PR #1971, so 0x150000--0x5a00000 is now one unbroken 84.7 MiB
span with no gaps.

Widening the fast path is safe because PR #1992 added translation-based DTB
validation: extra candidates cost scan time and nothing else.
2026-09-14 12:33:26 -05:00
Odysseas Stavrou 9d134d9f50 Add __folio_index and fix memdesc_flags_t introduction 2026-09-10 18:40:42 +03:00
Abyss Watcher ed0cf82946 use "any" to avoid iterating the entire dataclasses.fields list 2026-09-10 12:09:48 +02:00
ikelos 08875b690a Merge pull request #2022 from the-rectifier/ipython_9
Import `IPython.terminal` submodules explicitly in Volshell
2026-09-09 08:40:18 +01:00
Odysseas Stavrou 06870bd5bd Fix volshell on IPython>=9.17.0 2026-09-09 03:33:33 +03:00
ikelos d9b33c5442 Merge pull request #2009 from the-rectifier/taints_issue_6.19
fix: linux 6.19 taint_flag.module removal
2026-09-08 23:32:35 +01:00
ikelos 9e4931687b Merge pull request #2016 from mmadersbacher/fix/scheduled-tasks-arch-typo
Fix architecture typo blocking scheduled_tasks on 32-bit images
2026-08-19 15:14:53 +01:00
ikelos 44f8222e70 Merge pull request #2017 from mmadersbacher/fix/capabilities-pre-63-kernels
Fix capabilities plugin on kernels before 6.3
2026-08-19 15:14:19 +01:00
mmadersbacher f148a93445 Fix capabilities plugin on kernels before 6.3
kernel_cap_t only handles the 6.3+ layout and raised for everything else.
Before 6.3 the same name exists as a typedef of kernel_cap_struct, whose
implementation already decodes the two-element cap array, so fall back to
it instead of raising.
2026-08-18 20:11:30 +02:00
mmadersbacher 17707cb576 Fix architecture typo blocking scheduled_tasks on 32-bit images
The kernel requirement listed "Intel33". Intel layers only ever report
Intel32 or Intel64, so on a 32-bit image the requirement could never be
satisfied and the plugin aborted with a misleading "Unsatisfied
requirement ... kernel.layer_name" instead of running.
2026-08-18 19:29:19 +02:00
Odysseas Stavrou 7cdaa49b1c Unmark (T) RANDSTRUCT as a per-module flag 2026-08-18 03:50:38 +03:00
ikelos 958be9bcd9 Merge pull request #2015 from Hmkz0x00/fix/1936-pyinstaller-renderers-package
Make the renderers plugin directory a package
2026-08-14 08:48:34 +01:00
Mike Auty 8056d4e231 Drop arrow support from the EXE because the dependencies are too large 2026-08-14 08:48:16 +01:00
Mike Auty 7271dcd11e Fix up the documentation (and formatting) slightly 2026-08-13 23:29:08 +01:00
Mike Auty 847bb8d12c Ensure the arrow/parquet classes aren't created unless the libraries are there 2026-08-13 23:25:40 +01:00
ikelos d5c88dad60 Merge pull request #2013 from Hmkz0x00/fix/cli-file-url-construction
CLI: Build file URLs with as_uri instead of by hand
2026-08-13 23:10:55 +01:00
Hmkz0x00 34c62a7b0d Make the renderers plugin directory a package
The pyinstaller specs gather plugin modules two different ways.  The .py
files are shipped verbatim by collect_data_files(include_py_files=True),
while collect_submodules() supplies the hiddenimports that pyinstaller
actually analyses for dependencies.  The first walks the filesystem, the
second walks pkgutil, and pkgutil skips a directory with no __init__.py.

volatility3/framework/plugins/renderers has been such a directory since
the arrow and parquet renderers moved into it, so parquet_renderer.py was
copied into the binary but never analysed, and the pyarrow it imports was
left out.  The frozen build still advertised the arrow and parquet
renderers, because the framework finds them at runtime with os.walk, and
then died with an unhandled RuntimeError when either was selected.

Adding the __init__.py makes pkgutil descend into the directory, which is
all collect_submodules needs, and matches every other plugin subpackage.
Both specs use the same collect_submodules line, so neither needs editing.
2026-08-13 15:33:55 +05:30
Hmkz0x00 7b36e6b39e CLI: Build file URLs with as_uri instead of by hand
populate_config prefixed "file://" onto the result of pathname2url, which
already returns a leading "///" on Windows. Three slashes plus two gives
file://///C:/..., an empty authority that urlopen reads as a UNC path, so
every URIRequirement failed there before the file was ever opened. That
covers --single-location, --yara-file, --yara-compiled-file, --strings-file,
--isf and volshell's --script.

pathlib's as_uri produces the same string as the current code on POSIX for
every supported Python version, and the correct one on Windows, including
for UNC paths. It also sidesteps the Python 3.14 rewrite of pathname2url,
which gives POSIX the same leading "///" that Windows always returned.

The two other places in the codebase that build file URLs,
URIRequirement.location_from_file and volshell's run_script, were already
correct; this was the only one assembling the scheme by hand.
2026-08-03 21:32:18 +05:30
Odysseas Stavrou b32cfa4b63 fix: linux 6.19 taint_flag.module removal 2026-07-29 02:42:05 +03:00
ikelos fffd844b8e Merge pull request #1992 from Abyss-W4tcher/windows_intel_layer_checks
Windows: verify Intel layers using translation checks
2026-07-23 20:15:40 +01:00
Abyss Watcher 8d5f0dcd33 ruff formatting 2026-07-13 19:57:44 +02:00
Abyss Watcher 335b281a53 version bump: 2.28.1 -> 2.28.2 2026-07-13 19:56:06 +02:00
Abyss Watcher 67a49029ea add more documentation 2026-07-13 19:55:28 +02:00
Abyss Watcher 95e69ec92e add secondary check after mass testing review 2026-06-11 18:26:55 +02:00
Abyss Watcher 536aae7d29 add comment to pass statement 2026-06-10 17:02:23 +02:00
Abyss Watcher 3965376ddc rename IntelLayerCheck to Intel64LayerCheck 2026-06-10 17:01:17 +02:00
Abyss Watcher 12713c4e6f verify windows layers using translation checks 2026-06-10 15:59:04 +02:00
ikelos 634774fd0a Merge pull request #737 from digitalisx/feature/mermaid
Feature: new renderer support `Mermaid` 🧜‍♀️ (for tree relationship).
2026-05-26 09:27:24 +01:00
Donghyun Kim f66f5715c1 Use itertools.count for MermaidRenderer node IDs
Per review feedback, the small next_id() closure that combined a
'nonlocal node_counter' assignment with an f-string formatter is more
naturally expressed as itertools.count. The counter generator yields
the integer sequence starting at 1 and the call site formats it as
'n<index>' on the spot, so the behaviour is unchanged: per-render,
strictly-increasing, plugin-agnostic Mermaid node identifiers.
2026-05-26 16:33:41 +09:00
ikelos 2006245b74 Merge pull request #1988 from digitalisx/fix/save-config-debug-log-fstring
Fix: missing f-string prefix on save-config debug log
2026-05-26 07:53:56 +01:00
Donghyun Kim 9207b242ec Apply ruff format to MermaidRenderer
Bring the new MermaidRenderer in line with the repository's ruff
formatting rules (introduced in the develop merge that this branch
just absorbed): double-quoted strings, trailing comma after the last
mapping entry, four-space hanging indent for the visitor signature,
and an additional blank line between top-level classes.
2026-05-26 08:46:57 +09:00
Donghyun Kim 19b5e31ac0 Make MermaidRenderer plugin-agnostic via TreeGrid path_depth
Address review feedback that the renderer was tightly coupled to plugins
exposing PID/PPID columns: the previous implementation looked up "PID"
and "PPID" by name to build parent->child edges and raised a generic
exception otherwise, which prevented any non-pstree tree plugin from
being rendered as Mermaid.

The relationship is already encoded in the TreeGrid -- every TreeNode
carries its path_depth -- so the new render() walks the rows in
traversal order and tracks ancestry with a parent stack:

  * descending one or more levels pushes the previously-emitted node
    once per level (so a level skip still produces sane pops);
  * ascending pops the corresponding number of levels;
  * the stack top is always the parent of the next emitted node, or
    empty for a root-level node.

Each node is given a stable per-render identifier (n1, n2, ...) instead
of being keyed by a column value such as PID, since PIDs are not unique
across a TreeGrid and may contain characters that are unsafe in Mermaid
node IDs.

A small label-escaping helper replaces the previous ad-hoc string
replacement of parentheses, and embedded newlines in cell renderings
are folded to <br> so each row stays a single Mermaid node.

The unused tree_indent_column placeholder (flagged by code scanning)
is dropped as part of the rewrite.
2026-05-26 08:43:24 +09:00
Donghyun Kim 473bf2386b Merge remote-tracking branch 'origin/develop' into feature/mermaid 2026-05-26 08:39:23 +09:00
Donghyun Kim 8fb1df8b9f Fix missing f-string prefix on save-config debug log
The debug log emitted when writing out --save-config previously logged the
literal string "{args.save_config}" instead of the resolved filename, in both
vol.py and volshell. Add the f-string prefix so the actual destination path
appears in the log.
2026-05-26 06:41:59 +09:00
ikelos dfb8f5e78c Merge pull request #1981 from volatilityfoundation/issues/issue1979
Rework where the banner output happens
2026-05-22 08:14:43 +01:00
Mike Auty 392df7745e Rework where the banner output happens 2026-05-01 15:05:37 +01:00
ikelos 6b497259a9 Merge pull request #1980 from volatilityfoundation/stable
Merge pull request #1977 from volatilityfoundation/release/v2.28.0
2026-04-30 23:51:40 +01:00
ikelos fb148ba25b Merge pull request #1972 from cpuu/develop
Add deprecation warning for macOS analysis support
2026-04-30 22:15:52 +01:00