diff options
| -rw-r--r-- | miasm2/analysis/sandbox.py | 2 | ||||
| -rw-r--r-- | miasm2/jitter/loader/pe.py | 10 |
2 files changed, 7 insertions, 5 deletions
diff --git a/miasm2/analysis/sandbox.py b/miasm2/analysis/sandbox.py index ed178f8a..ca6dcfe6 100644 --- a/miasm2/analysis/sandbox.py +++ b/miasm2/analysis/sandbox.py @@ -173,7 +173,7 @@ class OS_Win(OS): all_pe = [] # Load libs in memory - all_pe = vm_load_pe_libs(self.ALL_IMP_DLL, libs) + all_pe = vm_load_pe_libs(self.jitter.vm, self.ALL_IMP_DLL, libs) # Patch libs imports for pe in all_pe.values(): diff --git a/miasm2/jitter/loader/pe.py b/miasm2/jitter/loader/pe.py index 80a24114..6b19fc16 100644 --- a/miasm2/jitter/loader/pe.py +++ b/miasm2/jitter/loader/pe.py @@ -185,8 +185,9 @@ def vm_load_pe(vm, fdata, align_s=True, load_hdr=True, **kargs): return pe -def vm_load_pe_lib(fname_in, libs, lib_path_base, **kargs): +def vm_load_pe_lib(vm, fname_in, libs, lib_path_base, **kargs): """Call vm_load_pe on @fname_in and update @libs accordingly + @vm: VmMngr instance @fname_in: library name @libs: libimp_pe instance @lib_path_base: DLLs relative path @@ -195,20 +196,21 @@ def vm_load_pe_lib(fname_in, libs, lib_path_base, **kargs): """ fname = os.path.join(lib_path_base, fname_in) with open(fname) as fstream: - pe = vm_load_pe(fstream.read(), **kargs) + pe = vm_load_pe(vm, fstream.read(), **kargs) libs.add_export_lib(pe, fname_in) return pe -def vm_load_pe_libs(libs_name, libs, lib_path_base="win_dll", **kargs): +def vm_load_pe_libs(vm, libs_name, libs, lib_path_base="win_dll", **kargs): """Call vm_load_pe_lib on each @libs_name filename + @vm: VmMngr instance @libs_name: list of str @libs: libimp_pe instance @lib_path_base: (optional) DLLs relative path Return a dictionnary Filename -> PE instances Extra arguments are passed to vm_load_pe_lib """ - return {fname: vm_load_pe_lib(fname, libs, lib_path_base, **kargs) + return {fname: vm_load_pe_lib(vm, fname, libs, lib_path_base, **kargs) for fname in libs_name} |