@@ -44,13 +44,15 @@ def get_requirements(cls) -> List[interfaces.configuration.RequirementInterface]
44
44
description = "Process ID to include (all other processes are excluded)" ,
45
45
optional = True ,
46
46
),
47
- requirements .IntRequirement (
47
+ requirements .ListRequirement (
48
48
name = "virtaddr" ,
49
+ element_type = int ,
49
50
description = "Dump a single _FILE_OBJECT at this virtual address" ,
50
51
optional = True ,
51
52
),
52
- requirements .IntRequirement (
53
+ requirements .ListRequirement (
53
54
name = "physaddr" ,
55
+ element_type = int ,
54
56
description = "Dump a single _FILE_OBJECT at this physical address" ,
55
57
optional = True ,
56
58
),
@@ -318,6 +320,7 @@ def _generator(self, procs: List, offsets: List):
318
320
)
319
321
320
322
elif offsets :
323
+
321
324
# Now process any offsets explicitly requested by the user.
322
325
for offset , is_virtual in offsets :
323
326
try :
@@ -355,10 +358,14 @@ def run(self):
355
358
):
356
359
raise ValueError ("Cannot use filter flag with an address flag" )
357
360
358
- if self .config .get ("virtaddr" , None ) is not None :
359
- offsets .append ((self .config ["virtaddr" ], True ))
360
- elif self .config .get ("physaddr" , None ) is not None :
361
- offsets .append ((self .config ["physaddr" ], False ))
361
+ if self .config .get ("virtaddr" ):
362
+ for virtaddr in self .config ["virtaddr" ]:
363
+ offsets .append ((virtaddr , True ))
364
+
365
+ elif self .config .get ("physaddr" ):
366
+ for physaddr in self .config ["physaddr" ]:
367
+ offsets .append ((physaddr , False ))
368
+
362
369
else :
363
370
filter_func = pslist .PsList .create_pid_filter (
364
371
[self .config .get ("pid" , None )]
0 commit comments