Skip to content

Commit d77d69c

Browse files
authored
Merge pull request #1746 from volatilityfoundation/fix_hidden_modules
Fix hidden_modules to actually list hidden modules...
2 parents e8e8e76 + a3069a3 commit d77d69c

File tree

1 file changed

+30
-30
lines changed

1 file changed

+30
-30
lines changed

volatility3/framework/plugins/linux/hidden_modules.py

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,35 @@
1717
class Hidden_modules(plugins.PluginInterface):
1818
"""Carves memory to find hidden kernel modules"""
1919

20-
_required_framework_version = (2, 10, 0)
21-
_version = (3, 0, 1)
20+
_required_framework_version = (2, 25, 0)
21+
_version = (3, 0, 2)
22+
23+
@classmethod
24+
def find_hidden_modules(
25+
cls, context, vmlinux_module_name: str
26+
) -> extensions.module:
27+
if context.symbol_space.verify_table_versions(
28+
"dwarf2json", lambda version, _: (not version) or version < (0, 8, 0)
29+
):
30+
raise exceptions.SymbolSpaceError(
31+
"Invalid symbol table, please ensure the ISF table produced by dwarf2json was created with version 0.8.0 or later"
32+
)
33+
34+
known_module_addresses = cls.get_lsmod_module_addresses(
35+
context, vmlinux_module_name
36+
)
37+
modules_memory_boundaries = (
38+
linux_utilities_modules.Modules.get_modules_memory_boundaries(
39+
context, vmlinux_module_name
40+
)
41+
)
42+
43+
yield from linux_utilities_modules.Modules.get_hidden_modules(
44+
context,
45+
vmlinux_module_name,
46+
known_module_addresses,
47+
modules_memory_boundaries,
48+
)
2249

2350
@classmethod
2451
def get_hidden_modules(
@@ -56,7 +83,7 @@ def get_hidden_modules(
5683

5784
run = linux_utilities_modules.ModuleDisplayPlugin.run
5885
_generator = linux_utilities_modules.ModuleDisplayPlugin.generator
59-
implementation = linux_utilities_modules.Modules.list_modules
86+
implementation = find_hidden_modules
6087

6188
@classmethod
6289
def get_requirements(cls) -> List[interfaces.configuration.RequirementInterface]:
@@ -163,30 +190,3 @@ def get_lsmod_module_addresses(
163190
)
164191
}
165192
return known_module_addresses
166-
167-
@classmethod
168-
def find_hidden_modules(
169-
cls, context, vmlinux_module_name: str
170-
) -> extensions.module:
171-
if context.symbol_space.verify_table_versions(
172-
"dwarf2json", lambda version, _: (not version) or version < (0, 8, 0)
173-
):
174-
raise exceptions.SymbolSpaceError(
175-
"Invalid symbol table, please ensure the ISF table produced by dwarf2json was created with version 0.8.0 or later"
176-
)
177-
178-
known_module_addresses = cls.get_lsmod_module_addresses(
179-
context, vmlinux_module_name
180-
)
181-
modules_memory_boundaries = (
182-
linux_utilities_modules.Modules.get_modules_memory_boundaries(
183-
context, vmlinux_module_name
184-
)
185-
)
186-
187-
yield from linux_utilities_modules.Modules.get_hidden_modules(
188-
context,
189-
vmlinux_module_name,
190-
known_module_addresses,
191-
modules_memory_boundaries,
192-
)

0 commit comments

Comments
 (0)