Skip to content

Commit 9cb6e22

Browse files
committed
Add load resolved module
1 parent b591cb9 commit 9cb6e22

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
lines changed

miasm/analysis/sandbox.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@ def load_main_pe(self, options):
250250
from miasm.jitter.loader.pe import vm_load_pe
251251
from miasm.os_dep.win_api_x86_32 import winobjs
252252

253-
module_image_base = self.loader.load_module(options.filename)
253+
module_image_base = self.loader.load_resolved_module(options.filename, options.filename)
254254
name = self.loader.module_base_address_to_name[module_image_base]
255255
self.pe = self.loader.module_name_to_module[name]
256256
winobjs.current_pe = self.pe

miasm/jitter/loader/pe.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -499,16 +499,24 @@ def resolve_function(self, module_name, imp_ord_or_name, parent=None, dst_ad=Non
499499

500500
def load_module(self, name):
501501
"""
502-
Load module and it's dependencies
502+
Resolve the path of @name and load module and it's dependencies
503+
503504
Return image base address of the module
505+
504506
"""
505507
name = name.lower()
506508
fname = self.find_module_path(name)
507-
if fname is None:
508-
raise RuntimeError("Cannot find module %r" % fname)
509+
return self.load_resolved_module(name, fname)
509510

511+
def load_resolved_module(self, name, fname):
512+
"""
513+
Load module @name using its @fname path and it's dependencies
514+
Return image base address of the module
515+
"""
510516
if name in self.unresolved_modules_names:
511517
return self.module_name_to_base_address[name]
518+
if fname is None:
519+
raise RuntimeError("Cannot find module %r" % fname)
512520

513521
module_address = self.module_name_to_base_address.get(name, None)
514522
if module_address is not None:

0 commit comments

Comments
 (0)