6534 Commits
Author SHA1 Message Date
ikelosandGitHub 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
ikelosandGitHub 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
ikelosandGitHub 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
ikelosandGitHub 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
ikelosandGitHub 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
ikelosandGitHub 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
ikelosandGitHub 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
ikelosandGitHub fb148ba25b Merge pull request #1972 from cpuu/develop
Add deprecation warning for macOS analysis support
2026-04-30 22:15:52 +01:00
ikelosandGitHub d61335e2a5 Merge pull request #1977 from volatilityfoundation/release/v2.28.0
Release/v2.28.0
v2.28.0
2026-04-30 20:29:02 +01:00
ikelosandGitHub c2db6ae5de Merge pull request #1971 from volatilityfoundation/issues/higher-dtb-ranges
Add in a much larger range if earlier checks don't find the DTB
2026-04-23 20:02:59 +01:00
Jaeyou PARKandGitHub 514f9d6a11 Add deprecation warning for macOS analysis support
Add a warning directive to the macOS tutorial noting that macOS analysis support is no longer actively maintained as of the Volatility 3 parity release. 
The existing plugins remain available but may not receive future updates. 
Links to the official announcement for details.
2026-04-08 10:29:32 +09:00
Mike Auty 9c2de16e2a Add in a much larger range if earlier checks don't find the DTB 2026-04-06 22:14:22 +01:00
ikelosandGitHub 9424c3a601 Merge pull request #1966 from Abyss-W4tcher/issue_1965_linux_malfind
[linux.malware.malfind] Allow dumping enumerated VMAs/pages
2026-04-02 21:40:00 +01:00
Mike Auty eb52181836 Bump the non-release version number now 2026-04-02 21:26:52 +01:00
ikelosandGitHub 905b03d375 Merge pull request #1962 from volatilityfoundation/issues/github-infrastructure
Switch to using github infrastructure for test cases...
2026-04-02 21:05:09 +01:00
Abyss Watcher f6930214e0 add dump-regions option to malfind and adjust dirty page enumeration 2026-03-23 17:16:51 +01:00
ikelosandGitHub fc8edc4f66 Merge pull request #1956 from oh2fih/fix/windows-pdb-download-to-cache
Add user cache directory as fallback for downloaded symbols
2026-03-16 23:44:41 +00:00
Esa Jokinen 7707a14092 PDBUtility: Log per-path symbol write failures at DEBUG level 2026-03-16 15:44:07 +02:00
Esa Jokinen dd06faa7ce Add user cache directory as fallback for downloaded symbols 2026-03-16 08:47:19 +02:00
Mike Auty 34384ddb4b Switch to using github infrastructure for test cases... 2026-03-12 22:25:46 +00:00
ikelosandGitHub a8c0832f62 Merge pull request #1960 from oh2fih/fix/pycryptodome-namespace-compat
Support Cryptodome namespace when Crypto is unavailable
2026-03-12 19:18:13 +00:00
ikelosandGitHub bb8237e825 Merge pull request #1961 from volatilityfoundation/revert-1927-issues/issue1255-2
Revert "Only act on local cache symbols under the symbol basepaths"
2026-03-10 22:08:31 +00:00
ikelosandGitHub 0b6229871f Revert "Only act on local cache symbols under the symbol basepaths" 2026-03-10 21:09:05 +00:00
Esa Jokinen 5e955e5220 Support Cryptodome namespace when Crypto is unavailable 2026-03-10 17:08:01 +02:00
ikelosandGitHub 8c67953c50 Merge pull request #1955 from volatilityfoundation/issues/shift-to-ruff-for-formatting
Switch to using ruff for formatting as well as linting
2026-03-09 21:35:49 +00:00
Mike Auty 86b53d90b0 Update documentation to remove black and use ruff 2026-03-09 20:47:24 +00:00
ikelosandGitHub 927a462b93 Merge pull request #1927 from volatilityfoundation/issues/issue1255-2
Only act on local cache symbols under the symbol basepaths
2026-03-09 19:50:38 +00:00
Mike Auty 013921e787 Switch to using ruff for formatting as well as linting 2026-03-08 20:48:02 +00:00
Mike Auty 98e2f7a1f5 Put back in the debugging line 2026-03-08 20:35:33 +00:00
ikelosandGitHub 4de5482e1a Merge pull request #1953 from Abyss-W4tcher/issue_1944_dtb_check
Issue #1944 Windows adjust dummy page table check
2026-03-08 20:34:24 +00:00
ikelosandGitHub fa732a337a Merge branch 'develop' into issue_1944_dtb_check 2026-03-08 20:34:16 +00:00
Mike Auty d3a9481a31 Tidy the threshold code for empty DTBs using code from @abyss-w4tcher and reduce it slightly 2026-03-08 20:29:18 +00:00