|
2 | 2 | # which is available at https://www.volatilityfoundation.org/license/vsl-v1.0 |
3 | 3 | # |
4 | 4 |
|
| 5 | +import datetime |
5 | 6 | import logging |
6 | | -from typing import Callable, Iterable, List, Dict |
| 7 | +from typing import Callable, Dict, Iterable, List |
7 | 8 |
|
8 | | -from volatility3.framework import renderers, interfaces, exceptions |
| 9 | +from volatility3.framework import exceptions, interfaces, renderers |
9 | 10 | from volatility3.framework.configuration import requirements |
10 | 11 | from volatility3.framework.objects import utility |
| 12 | +from volatility3.framework.renderers import format_hints |
11 | 13 | from volatility3.framework.symbols import mac |
12 | 14 |
|
13 | 15 | vollog = logging.getLogger(__name__) |
@@ -105,10 +107,20 @@ def _generator(self): |
105 | 107 | self.config["kernel"], |
106 | 108 | filter_func=self.create_pid_filter(self.config.get("pid", None)), |
107 | 109 | ): |
| 110 | + offset = format_hints.Hex(task.vol.offset) |
| 111 | + name = utility.array_to_string(task.p_comm) |
108 | 112 | pid = task.p_pid |
| 113 | + uid = task.p_uid |
| 114 | + gid = task.p_gid |
| 115 | + start_time_seconds = task.p_start.tv_sec |
| 116 | + start_time_microseconds = task.p_start.tv_usec |
| 117 | + start_time = datetime.datetime.fromtimestamp( |
| 118 | + start_time_seconds + start_time_microseconds / 1e6 |
| 119 | + ) |
| 120 | + |
109 | 121 | ppid = task.p_ppid |
110 | | - name = utility.array_to_string(task.p_comm) |
111 | | - yield (0, (pid, ppid, name)) |
| 122 | + |
| 123 | + yield (0, (offset, name, pid, uid, gid, start_time, ppid)) |
112 | 124 |
|
113 | 125 | @classmethod |
114 | 126 | def list_tasks_allproc( |
@@ -310,5 +322,14 @@ def list_tasks_pid_hash_table( |
310 | 322 |
|
311 | 323 | def run(self): |
312 | 324 | return renderers.TreeGrid( |
313 | | - [("PID", int), ("PPID", int), ("COMM", str)], self._generator() |
| 325 | + [ |
| 326 | + ("OFFSET", format_hints.Hex), |
| 327 | + ("NAME", str), |
| 328 | + ("PID", int), |
| 329 | + ("UID", int), |
| 330 | + ("GID", int), |
| 331 | + ("Start Time", datetime.datetime), |
| 332 | + ("PPID", int), |
| 333 | + ], |
| 334 | + self._generator(), |
314 | 335 | ) |
0 commit comments