33#
44import logging
55import datetime
6- from dataclasses import dataclass , astuple , field
6+ import dataclasses
77from typing import List , Callable , Tuple
88
99from volatility3 .framework import renderers , interfaces , constants
1717vollog = logging .getLogger (__name__ )
1818
1919
20- @dataclass
20+ @dataclasses . dataclass
2121class FDUser :
2222 """FD user representation, featuring augmented information and formatted fields.
2323 This is the data the plugin will eventually display.
@@ -28,17 +28,23 @@ class FDUser:
2828 task_comm : str
2929 fd_num : int
3030 full_path : str
31- device : str = field (default = renderers .NotAvailableValue ())
32- inode_num : int = field (default = renderers .NotAvailableValue ())
33- inode_type : str = field (default = renderers .NotAvailableValue ())
34- file_mode : str = field (default = renderers .NotAvailableValue ())
35- change_time : datetime .datetime = field (default = renderers .NotAvailableValue ())
36- modification_time : datetime .datetime = field (default = renderers .NotAvailableValue ())
37- access_time : datetime .datetime = field (default = renderers .NotAvailableValue ())
38- inode_size : int = field (default = renderers .NotAvailableValue ())
39-
40-
41- @dataclass
31+ device : str = dataclasses .field (default = renderers .NotAvailableValue ())
32+ inode_num : int = dataclasses .field (default = renderers .NotAvailableValue ())
33+ inode_type : str = dataclasses .field (default = renderers .NotAvailableValue ())
34+ file_mode : str = dataclasses .field (default = renderers .NotAvailableValue ())
35+ change_time : datetime .datetime = dataclasses .field (
36+ default = renderers .NotAvailableValue ()
37+ )
38+ modification_time : datetime .datetime = dataclasses .field (
39+ default = renderers .NotAvailableValue ()
40+ )
41+ access_time : datetime .datetime = dataclasses .field (
42+ default = renderers .NotAvailableValue ()
43+ )
44+ inode_size : int = dataclasses .field (default = renderers .NotAvailableValue ())
45+
46+
47+ @dataclasses .dataclass
4248class FDInternal :
4349 """FD internal representation containing only the core objects
4450
@@ -168,7 +174,7 @@ def _generator(self, pids, vmlinux_module_name):
168174 self .context , vmlinux_module_name , filter_func = filter_func
169175 ):
170176 fd_user = fd_internal .to_user ()
171- yield (0 , astuple (fd_user ))
177+ yield (0 , dataclasses . astuple (fd_user ))
172178
173179 def run (self ):
174180 pids = self .config .get ("pid" , None )
0 commit comments