Commit Graph
5801 Commits
Author SHA1 Message Date
Mike Auty 3153cd7e30 Remove the chainmap and multiple dictionaries to reduce memory consumption 2025-03-24 19:21:51 +00:00
Mike Auty f0153817c5 Add in slots to object model 2025-03-24 00:58:28 +00:00
ikelosandGitHub 0ddec14cf9 Merge pull request #1724 from volatilityfoundation/dgmcdona/windows_timers_raw_dpc_offset
Windows: Fix raw Dpc offset calculation
2025-03-20 20:28:18 +00:00
David McDonald d097d6abeb Timers: convert general Exception to InvalidAddressException 2025-03-20 15:18:08 -05:00
David McDonald c4589a51d5 Timers: Adds debug log statement to catch-all exception 2025-03-20 15:13:26 -05:00
David McDonald 1e175b5d3b Objects: rework new get_raw_value() method
Per code review recommendations, splits the `_unmarshall` classmethod
into two components, one of which retrieves the raw value, and the other
that returns the masked pointer. The `get_raw_value` method now calls
the `_get_raw_value` classmethod using its instance information.
2025-03-20 15:11:37 -05:00
David McDonald 144fd3139a Framework: Minor version bump
Made an additive change to `Pointer` by adding the `get_raw_value()`
method, so bumping the minor version here. The `get_raw_dpc()` method
was removed from the `KTIMER` extension class, which is currently
unversioned.
2025-03-20 14:38:19 -05:00
David McDonald a8ea3aae01 Extensions: Removes the get_raw_dpc method from KTIMER
This removes the `get_raw_dpc` method from the `KTIMER` extension class.
This method was inaccurate in that it actually returns the masked
pointer value instead of the full 64-bit value encoded in that member,
which is required in order to correctly decode the 'real' pointer.

The invocation of `get_raw_dpc()` was replaced with
`self.Dpc.get_raw_value()`, which was added in the previous commit.
2025-03-20 14:32:04 -05:00
David McDonald 7b9fb91672 Objects: create get_raw_value() method for Pointer
This creates a `get_raw_value()` method for the `Pointer` class that
allows users to access the raw (unmasked) value of a pointer. This was
required in order to decode the encoded `Dpc` pointer that is part of
the `_KTIMER` Windows type. Addition of this type was favored over a
cast to `unsigned long` or `unsigned long long` due to the potential for
future instability of this type due to compiler changes.

See https://github.com/volatilityfoundation/volatility3/issues/1041 for
further discussion around the conversion of `log unsigned int` to
`unsigned long` in `clang`.

See https://github.com/volatilityfoundation/volatility3/pull/1177#discussion_r1650049299
for the original discussion around how to access this pointer in the
`Timers` plugin.
2025-03-20 14:23:24 -05:00
ikelosandGitHub 369f37ec43 Merge pull request #1727 from volatilityfoundation/kallsyms_fixes_round2
Hopefully final round of kallsym fixes
2025-03-20 18:26:23 +00:00
Andrew Case 548657c309 Change None check to remove False booleans 2025-03-20 15:02:22 +00:00
ikelosandGitHub 69f3707eb3 Merge pull request #1726 from volatilityfoundation/add_lkm_load_parameters
Add the recovery and reporting of LKM load parameters
2025-03-20 00:28:55 +00:00
Andrew Case 508cbd3a17 Fix function name 2025-03-19 23:51:29 +00:00
Andrew Case 741a4ea809 Hopefully final round of kallsym fixes 2025-03-19 23:49:45 +00:00
Andrew Case bfe50889b0 Add the recovery and reporting of LKM load parameters 2025-03-19 17:32:09 -05:00
David McDonald 2795c7cdd2 Windows: Fix raw Dpc offset calculation
The original code was still returning this as a pointer that ended up
dereferenced in later steps. However, this pointer value actually needs
to be cast to an `unsigned long long` and decoded first.
2025-03-19 15:45:26 -05:00
ikelosandGitHub bd5fb7d611 Merge pull request #1719 from volatilityfoundation/linux_unifiy_module_gathering_output
Create versioned parent class for all plugins that enumerate Linux ke…
2025-03-18 08:18:15 +00:00
Andrew Case 06a4c56395 Update for new accessing method 2025-03-17 20:15:18 -05:00
Andrew Case 0667a40836 Removed unused import 2025-03-17 19:06:02 -05:00
Andrew Case 93be148534 Change how the inheritance is performed 2025-03-17 19:04:02 -05:00
Andrew Case 00c4a13567 remove errant space 2025-03-17 18:58:55 -05:00
Andrew Case f906bde338 change lmsod call 2025-03-17 18:56:54 -05:00
Andrew Case 971f06996b bump version on kallsyms 2025-03-17 18:56:49 -05:00
Andrew Case 7146b45fa7 Create versioned parent class for all plugins that enumerate Linux kernel modules. Convert plugins to new method. 2025-03-17 18:56:05 -05:00
ikelosandGitHub 93e2072509 Merge pull request #1723 from volatilityfoundation/fix_extension_checks
Add needed checks to prevent backtraces in ELF parsing
2025-03-17 23:53:01 +00:00
ikelosandGitHub 03bc1c79ed Merge pull request #1722 from volatilityfoundation/kallsyms_fixes_and_remove_deprecated_calls
Fix bugs in kallsyms and the related pscallstack found in testing and…
2025-03-17 23:52:51 +00:00
Andrew Case 07b74fd8e3 Add typing to functions in modules class 2025-03-17 18:28:13 -05:00
Andrew Case e48d2972a6 Add needed checks to prevent backtraces in ELF parsing 2025-03-17 17:46:25 -05:00
Andrew Case 1eacddc79c Add needed checks to prevent backtraces in ELF parsing 2025-03-17 17:45:13 -05:00
Andrew Case b8a427c130 Fix bugs in kallsyms and the related pscallstack found in testing and switch calls to deprecated functions 2025-03-17 17:08:27 -05:00
ikelosandGitHub ed3bcf1f5f Merge pull request #1721 from volatilityfoundation/fix_iomem
Prevent backtrace on smeared iomem entry
2025-03-17 21:29:17 +00:00
ikelosandGitHub 7bdeddf050 Merge pull request #1720 from volatilityfoundation/fix_check_syscall
Prevent backtrace on corrupt system call table entry
2025-03-17 21:28:31 +00:00
ikelosandGitHub a1229f902e Merge pull request #1718 from volatilityfoundation/first_elf_fixes
Fix first set of ELF parsing unhandled smear protection
2025-03-17 21:13:34 +00:00
ikelosandGitHub 3a6415ab83 Merge pull request #1717 from volatilityfoundation/update_netfilter_v2
Update netfilter to current rookit detection API and update displayed…
2025-03-17 21:12:05 +00:00
Andrew Case ee35fa1ef9 Prevent backtrace on smeared iomem entry 2025-03-17 19:10:23 +00:00
Andrew Case f697287784 Prevent backtrace on corrupt system call table entry 2025-03-17 19:09:05 +00:00
Andrew Case 4b403d50ef Fix first set of ELF parsing unhandled smear protection 2025-03-17 15:29:28 +00:00
Andrew Case 18abe9c508 Fix first set of ELF parsing unhandled smear protection 2025-03-17 15:25:43 +00:00
Andrew Case 04cd65ef2b Update netfilter to current rookit detection API and update displayed columns to current standards 2025-03-17 15:23:44 +00:00
ikelosandGitHub ffd38c5bff Merge pull request #1716 from volatilityfoundation/add_windows_plugin
Add the windows plugin and associated extensions updates
2025-03-16 22:17:37 +00:00
Andrew Case dae430ff58 Address feedback 2025-03-16 22:19:41 +00:00
Andrew Case 4e1ddadb40 Fix version requirements 2025-03-16 17:53:55 +00:00
Andrew Case 7e5a34ae49 Black and Ruff fixes 2025-03-16 17:17:46 +00:00
Andrew Case c8869d87cd Version the GUI extensions. Correctly check windows procedure 2025-03-16 17:15:43 +00:00
ikelosandGitHub 894f43c254 Merge pull request #1715 from volatilityfoundation/fix_windows_strings_bytes
Fix broken truncation from Vol3 bytes to string conversion
2025-03-16 16:54:46 +00:00
Andrew Case d22d513716 Re-type the correct function 2025-03-16 16:40:53 +00:00
Andrew Case bad34a112a Add the windows plugin and associated extensions updates 2025-03-15 22:58:07 +00:00
Andrew Case 2d2228b06e Fix signature 2025-03-15 21:25:39 +00:00
Andrew Case fbb4003a32 Fix broken truncation from Vol3 bytes to string conversion 2025-03-15 20:59:14 +00:00
ikelosandGitHub 5bd7a4f4c2 Merge pull request #1710 from volatilityfoundation/update_deprecated_api_usage
Update nearly all callers of now deprecated Linux kernel APIs
2025-03-15 20:44:08 +00:00