Skip to content

Commit fa06064

Browse files
committed
linux plugins: Update pslist major version and its 18 dependent plugins
1 parent 97534f0 commit fa06064

19 files changed

+48
-50
lines changed

volatility3/framework/plugins/linux/bash.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ class Bash(plugins.PluginInterface, timeliner.TimeLinerInterface):
2222
"""Recovers bash command history from memory."""
2323

2424
_required_framework_version = (2, 0, 0)
25+
_version = (1, 0, 1)
2526

2627
@classmethod
2728
def get_requirements(cls) -> List[interfaces.configuration.RequirementInterface]:
@@ -32,7 +33,7 @@ def get_requirements(cls) -> List[interfaces.configuration.RequirementInterface]
3233
architectures=["Intel32", "Intel64"],
3334
),
3435
requirements.PluginRequirement(
35-
name="pslist", plugin=pslist.PsList, version=(2, 0, 0)
36+
name="pslist", plugin=pslist.PsList, version=(3, 0, 0)
3637
),
3738
requirements.ListRequirement(
3839
name="pid",

volatility3/framework/plugins/linux/boottime.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ class Boottime(interfaces.plugins.PluginInterface, timeliner.TimeLinerInterface)
1616

1717
_required_framework_version = (2, 11, 0)
1818

19-
_version = (1, 0, 0)
19+
_version = (1, 0, 1)
2020

2121
@classmethod
2222
def get_requirements(cls) -> List[interfaces.configuration.RequirementInterface]:
@@ -27,7 +27,7 @@ def get_requirements(cls) -> List[interfaces.configuration.RequirementInterface]
2727
architectures=["Intel32", "Intel64"],
2828
),
2929
requirements.PluginRequirement(
30-
name="pslist", plugin=pslist.PsList, version=(2, 3, 0)
30+
name="pslist", plugin=pslist.PsList, version=(3, 0, 0)
3131
),
3232
]
3333

volatility3/framework/plugins/linux/capabilities.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,7 @@ class Capabilities(plugins.PluginInterface):
5050
"""Lists process capabilities"""
5151

5252
_required_framework_version = (2, 0, 0)
53-
54-
_version = (1, 0, 0)
53+
_version = (1, 0, 1)
5554

5655
@classmethod
5756
def get_requirements(cls) -> List[interfaces.configuration.RequirementInterface]:
@@ -62,7 +61,7 @@ def get_requirements(cls) -> List[interfaces.configuration.RequirementInterface]
6261
architectures=["Intel32", "Intel64"],
6362
),
6463
requirements.PluginRequirement(
65-
name="pslist", plugin=pslist.PsList, version=(2, 0, 0)
64+
name="pslist", plugin=pslist.PsList, version=(3, 0, 0)
6665
),
6766
requirements.ListRequirement(
6867
name="pids",
@@ -87,7 +86,7 @@ def _check_capabilities_support(
8786
try:
8887
kernel_cap_last_cap = vmlinux.object_from_symbol(symbol_name="cap_last_cap")
8988
except exceptions.SymbolError:
90-
# It should be a kernel < 3.2
89+
# It should be a kernel < 3.2 See 73efc0394e148d0e15583e13712637831f926720
9190
return None
9291

9392
vol2_last_cap = extensions.kernel_cap_struct.get_last_cap_value()

volatility3/framework/plugins/linux/check_creds.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,7 @@ class Check_creds(interfaces.plugins.PluginInterface):
1212
"""Checks if any processes are sharing credential structures"""
1313

1414
_required_framework_version = (2, 0, 0)
15-
16-
_version = (2, 0, 0)
15+
_version = (2, 0, 1)
1716

1817
@classmethod
1918
def get_requirements(cls):
@@ -24,7 +23,7 @@ def get_requirements(cls):
2423
architectures=["Intel32", "Intel64"],
2524
),
2625
requirements.PluginRequirement(
27-
name="pslist", plugin=pslist.PsList, version=(2, 0, 0)
26+
name="pslist", plugin=pslist.PsList, version=(3, 0, 0)
2827
),
2928
]
3029

volatility3/framework/plugins/linux/elfs.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ class Elfs(plugins.PluginInterface):
2525
"""Lists all memory mapped ELF files for all processes."""
2626

2727
_required_framework_version = (2, 0, 0)
28-
_version = (2, 0, 1)
28+
_version = (2, 0, 2)
2929

3030
@classmethod
3131
def get_requirements(cls) -> List[interfaces.configuration.RequirementInterface]:
@@ -36,7 +36,7 @@ def get_requirements(cls) -> List[interfaces.configuration.RequirementInterface]
3636
architectures=["Intel32", "Intel64"],
3737
),
3838
requirements.PluginRequirement(
39-
name="pslist", plugin=pslist.PsList, version=(2, 0, 0)
39+
name="pslist", plugin=pslist.PsList, version=(3, 0, 0)
4040
),
4141
requirements.ListRequirement(
4242
name="pid",

volatility3/framework/plugins/linux/envars.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ class Envars(plugins.PluginInterface):
1717
"""Lists processes with their environment variables"""
1818

1919
_required_framework_version = (2, 0, 0)
20+
_version = (1, 0, 1)
2021

2122
@classmethod
2223
def get_requirements(cls):
@@ -28,7 +29,7 @@ def get_requirements(cls):
2829
architectures=["Intel32", "Intel64"],
2930
),
3031
requirements.PluginRequirement(
31-
name="pslist", plugin=pslist.PsList, version=(2, 0, 0)
32+
name="pslist", plugin=pslist.PsList, version=(3, 0, 0)
3233
),
3334
requirements.ListRequirement(
3435
name="pid",

volatility3/framework/plugins/linux/kthreads.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,7 @@ class Kthreads(plugins.PluginInterface):
2020
"""Enumerates kthread functions"""
2121

2222
_required_framework_version = (2, 11, 0)
23-
24-
_version = (1, 0, 0)
23+
_version = (1, 0, 1)
2524

2625
@classmethod
2726
def get_requirements(cls) -> List[interfaces.configuration.RequirementInterface]:
@@ -35,7 +34,7 @@ def get_requirements(cls) -> List[interfaces.configuration.RequirementInterface]
3534
name="linuxutils", component=linux.LinuxUtilities, version=(2, 1, 0)
3635
),
3736
requirements.PluginRequirement(
38-
name="pslist", plugin=pslist.PsList, version=(2, 3, 0)
37+
name="pslist", plugin=pslist.PsList, version=(3, 0, 0)
3938
),
4039
requirements.PluginRequirement(
4140
name="lsmod", plugin=lsmod.Lsmod, version=(2, 0, 0)

volatility3/framework/plugins/linux/library_list.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,7 @@ class LibraryList(interfaces.plugins.PluginInterface):
2121
"""Enumerate libraries loaded into processes"""
2222

2323
_required_framework_version = (2, 0, 0)
24-
25-
_version = (1, 0, 0)
24+
_version = (1, 0, 1)
2625

2726
@classmethod
2827
def get_requirements(cls):
@@ -33,7 +32,7 @@ def get_requirements(cls):
3332
architectures=["Intel32", "Intel64"],
3433
),
3534
requirements.PluginRequirement(
36-
name="pslist", plugin=pslist.PsList, version=(2, 2, 0)
35+
name="pslist", plugin=pslist.PsList, version=(3, 0, 0)
3736
),
3837
requirements.ListRequirement(
3938
name="pids",

volatility3/framework/plugins/linux/lsof.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ class Lsof(plugins.PluginInterface, timeliner.TimeLinerInterface):
110110
"""Lists open files for each processes."""
111111

112112
_required_framework_version = (2, 0, 0)
113-
_version = (2, 0, 0)
113+
_version = (2, 0, 1)
114114

115115
@classmethod
116116
def get_requirements(cls) -> List[interfaces.configuration.RequirementInterface]:
@@ -121,7 +121,7 @@ def get_requirements(cls) -> List[interfaces.configuration.RequirementInterface]
121121
architectures=["Intel32", "Intel64"],
122122
),
123123
requirements.PluginRequirement(
124-
name="pslist", plugin=pslist.PsList, version=(2, 0, 0)
124+
name="pslist", plugin=pslist.PsList, version=(3, 0, 0)
125125
),
126126
requirements.VersionRequirement(
127127
name="linuxutils", component=linux.LinuxUtilities, version=(2, 0, 0)

volatility3/framework/plugins/linux/malfind.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
from typing import List
66
import logging
7-
from volatility3.framework import constants, interfaces
7+
from volatility3.framework import interfaces
88
from volatility3.framework import renderers, symbols
99
from volatility3.framework.configuration import requirements
1010
from volatility3.framework.objects import utility
@@ -18,6 +18,7 @@ class Malfind(interfaces.plugins.PluginInterface):
1818
"""Lists process memory ranges that potentially contain injected code."""
1919

2020
_required_framework_version = (2, 0, 0)
21+
_version = (1, 0, 1)
2122

2223
@classmethod
2324
def get_requirements(cls) -> List[interfaces.configuration.RequirementInterface]:
@@ -28,7 +29,7 @@ def get_requirements(cls) -> List[interfaces.configuration.RequirementInterface]
2829
architectures=["Intel32", "Intel64"],
2930
),
3031
requirements.PluginRequirement(
31-
name="pslist", plugin=pslist.PsList, version=(2, 0, 0)
32+
name="pslist", plugin=pslist.PsList, version=(3, 0, 0)
3233
),
3334
requirements.ListRequirement(
3435
name="pid",

volatility3/framework/plugins/linux/mountinfo.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,7 @@ class MountInfo(plugins.PluginInterface):
3636
"""Lists mount points on processes mount namespaces"""
3737

3838
_required_framework_version = (2, 2, 0)
39-
40-
_version = (1, 2, 1)
39+
_version = (1, 2, 2)
4140

4241
@classmethod
4342
def get_requirements(cls) -> List[interfaces.configuration.RequirementInterface]:
@@ -48,7 +47,7 @@ def get_requirements(cls) -> List[interfaces.configuration.RequirementInterface]
4847
architectures=["Intel32", "Intel64"],
4948
),
5049
requirements.PluginRequirement(
51-
name="pslist", plugin=pslist.PsList, version=(2, 0, 0)
50+
name="pslist", plugin=pslist.PsList, version=(3, 0, 0)
5251
),
5352
requirements.VersionRequirement(
5453
name="linuxutils", component=linux.LinuxUtilities, version=(2, 1, 0)

volatility3/framework/plugins/linux/pidhashtable.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,7 @@ class PIDHashTable(plugins.PluginInterface):
1919
"""Enumerates processes through the PID hash table"""
2020

2121
_required_framework_version = (2, 0, 0)
22-
23-
_version = (1, 0, 1)
22+
_version = (1, 0, 2)
2423

2524
@classmethod
2625
def get_requirements(cls) -> List[interfaces.configuration.RequirementInterface]:
@@ -31,7 +30,7 @@ def get_requirements(cls) -> List[interfaces.configuration.RequirementInterface]
3130
architectures=["Intel32", "Intel64"],
3231
),
3332
requirements.PluginRequirement(
34-
name="pslist", plugin=pslist.PsList, version=(2, 0, 0)
33+
name="pslist", plugin=pslist.PsList, version=(3, 0, 0)
3534
),
3635
requirements.VersionRequirement(
3736
name="linuxutils", component=linux.LinuxUtilities, version=(2, 1, 0)
@@ -236,8 +235,8 @@ def _generator(
236235
self, decorate_comm: bool = False
237236
) -> interfaces.objects.ObjectInterface:
238237
for task in self.get_tasks():
239-
offset, pid, tid, ppid, name = pslist.PsList.get_task_fields(
240-
task, decorate_comm
238+
offset, pid, tid, ppid, name, _creation_time = (
239+
pslist.PsList.get_task_fields(task, decorate_comm)
241240
)
242241
fields = format_hints.Hex(offset), pid, tid, ppid, name
243242
yield 0, fields

volatility3/framework/plugins/linux/proc.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@ class Maps(plugins.PluginInterface):
2121
"""Lists all memory maps for all processes."""
2222

2323
_required_framework_version = (2, 0, 0)
24-
_version = (1, 0, 0)
24+
_version = (1, 0, 1)
25+
2526
MAXSIZE_DEFAULT = 1024 * 1024 * 1024 # 1 Gb
2627

2728
@classmethod
@@ -34,7 +35,7 @@ def get_requirements(cls):
3435
architectures=["Intel32", "Intel64"],
3536
),
3637
requirements.PluginRequirement(
37-
name="pslist", plugin=pslist.PsList, version=(2, 0, 0)
38+
name="pslist", plugin=pslist.PsList, version=(3, 0, 0)
3839
),
3940
requirements.ListRequirement(
4041
name="pid",

volatility3/framework/plugins/linux/psaux.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ class PsAux(plugins.PluginInterface):
1515
"""Lists processes with their command line arguments"""
1616

1717
_required_framework_version = (2, 0, 0)
18+
_version = (1, 0, 1)
1819

1920
@classmethod
2021
def get_requirements(cls):
@@ -26,7 +27,7 @@ def get_requirements(cls):
2627
architectures=["Intel32", "Intel64"],
2728
),
2829
requirements.PluginRequirement(
29-
name="pslist", plugin=pslist.PsList, version=(2, 0, 0)
30+
name="pslist", plugin=pslist.PsList, version=(3, 0, 0)
3031
),
3132
requirements.ListRequirement(
3233
name="pid",

volatility3/framework/plugins/linux/pslist.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,7 @@ class PsList(interfaces.plugins.PluginInterface, timeliner.TimeLinerInterface):
1818
"""Lists the processes present in a particular linux memory image."""
1919

2020
_required_framework_version = (2, 0, 0)
21-
22-
_version = (2, 3, 0)
21+
_version = (3, 0, 0)
2322

2423
@classmethod
2524
def get_requirements(cls) -> List[interfaces.configuration.RequirementInterface]:

volatility3/framework/plugins/linux/pstree.py

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ class PsTree(interfaces.plugins.PluginInterface):
1313
ID."""
1414

1515
_required_framework_version = (2, 0, 0)
16+
_version = (1, 0, 1)
1617

1718
@classmethod
1819
def get_requirements(cls):
@@ -24,7 +25,7 @@ def get_requirements(cls):
2425
architectures=["Intel32", "Intel64"],
2526
),
2627
requirements.PluginRequirement(
27-
name="pslist", plugin=pslist.PsList, version=(2, 2, 0)
28+
name="pslist", plugin=pslist.PsList, version=(3, 0, 0)
2829
),
2930
requirements.ListRequirement(
3031
name="pid",
@@ -100,13 +101,11 @@ def _generator(
100101
def yield_processes(pid):
101102
task = self._tasks[pid]
102103

103-
row = pslist.PsList.get_task_fields(task, decorate_comm)
104-
# update the first element, the offset, in the row tuple to use format_hints.Hex
105-
# as a simple int is returned from get_task_fields.
106-
row = (format_hints.Hex(row[0]),) + row[1:]
107-
108-
tid = task.pid
109-
yield (self._levels[tid] - 1, row)
104+
offset, pid, tid, ppid, name, _creation_time = (
105+
pslist.PsList.get_task_fields(task, decorate_comm)
106+
)
107+
fields = format_hints.Hex(offset), pid, tid, ppid, name
108+
yield (self._levels[tid] - 1, fields)
110109

111110
for child_pid in sorted(self._children.get(tid, [])):
112111
yield from yield_processes(child_pid)

volatility3/framework/plugins/linux/ptrace.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ class Ptrace(plugins.PluginInterface):
1919
"""Enumerates ptrace's tracer and tracee tasks"""
2020

2121
_required_framework_version = (2, 10, 0)
22-
_version = (1, 0, 0)
22+
_version = (1, 0, 1)
2323

2424
@classmethod
2525
def get_requirements(cls) -> List[interfaces.configuration.RequirementInterface]:
@@ -30,7 +30,7 @@ def get_requirements(cls) -> List[interfaces.configuration.RequirementInterface]
3030
architectures=architectures.LINUX_ARCHS,
3131
),
3232
requirements.PluginRequirement(
33-
name="pslist", plugin=pslist.PsList, version=(2, 2, 0)
33+
name="pslist", plugin=pslist.PsList, version=(3, 0, 0)
3434
),
3535
]
3636

volatility3/framework/plugins/linux/vmaregexscan.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@ class VmaRegExScan(plugins.PluginInterface):
2121
"""Scans all virtual memory areas for tasks using RegEx."""
2222

2323
_required_framework_version = (2, 0, 0)
24-
_version = (1, 0, 0)
24+
_version = (1, 0, 1)
25+
2526
MAXSIZE_DEFAULT = 128
2627

2728
@classmethod
@@ -34,7 +35,7 @@ def get_requirements(cls) -> List[interfaces.configuration.RequirementInterface]
3435
architectures=["Intel32", "Intel64"],
3536
),
3637
requirements.PluginRequirement(
37-
name="pslist", plugin=pslist.PsList, version=(2, 0, 0)
38+
name="pslist", plugin=pslist.PsList, version=(3, 0, 0)
3839
),
3940
requirements.ListRequirement(
4041
name="pid",

volatility3/framework/plugins/linux/vmayarascan.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ class VmaYaraScan(interfaces.plugins.PluginInterface):
1515
"""Scans all virtual memory areas for tasks using yara."""
1616

1717
_required_framework_version = (2, 4, 0)
18-
_version = (1, 0, 0)
18+
_version = (1, 0, 1)
1919

2020
@classmethod
2121
def get_requirements(cls) -> List[interfaces.configuration.RequirementInterface]:
@@ -28,7 +28,7 @@ def get_requirements(cls) -> List[interfaces.configuration.RequirementInterface]
2828
optional=True,
2929
),
3030
requirements.PluginRequirement(
31-
name="pslist", plugin=pslist.PsList, version=(2, 0, 0)
31+
name="pslist", plugin=pslist.PsList, version=(3, 0, 0)
3232
),
3333
requirements.PluginRequirement(
3434
name="yarascan", plugin=yarascan.YaraScan, version=(2, 0, 0)

0 commit comments

Comments
 (0)