|
17 | 17 | class Hidden_modules(plugins.PluginInterface): |
18 | 18 | """Carves memory to find hidden kernel modules""" |
19 | 19 |
|
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 | + ) |
22 | 49 |
|
23 | 50 | @classmethod |
24 | 51 | def get_hidden_modules( |
@@ -56,7 +83,7 @@ def get_hidden_modules( |
56 | 83 |
|
57 | 84 | run = linux_utilities_modules.ModuleDisplayPlugin.run |
58 | 85 | _generator = linux_utilities_modules.ModuleDisplayPlugin.generator |
59 | | - implementation = linux_utilities_modules.Modules.list_modules |
| 86 | + implementation = find_hidden_modules |
60 | 87 |
|
61 | 88 | @classmethod |
62 | 89 | def get_requirements(cls) -> List[interfaces.configuration.RequirementInterface]: |
@@ -163,30 +190,3 @@ def get_lsmod_module_addresses( |
163 | 190 | ) |
164 | 191 | } |
165 | 192 | 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