about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorCamille Mougey <camille.mougey@cea.fr>2014-12-18 21:05:20 +0100
committerCamille Mougey <camille.mougey@cea.fr>2014-12-20 17:44:23 +0100
commit115e7529d4c33686e294b9cc8099ea92eea815d9 (patch)
treed4062e6ce6e4b86e3715bae5690654e2365223e9
parent307d43e4c643e55d6ddcc9b29152e526c1dae31f (diff)
downloadmiasm-115e7529d4c33686e294b9cc8099ea92eea815d9.tar.gz
miasm-115e7529d4c33686e294b9cc8099ea92eea815d9.zip
Loader: update vm_loads API, take a data buffer instead of a filename
-rw-r--r--miasm2/jitter/loader/elf.py4
-rw-r--r--miasm2/jitter/loader/pe.py7
2 files changed, 6 insertions, 5 deletions
diff --git a/miasm2/jitter/loader/elf.py b/miasm2/jitter/loader/elf.py
index 528ff4f5..3fd08725 100644
--- a/miasm2/jitter/loader/elf.py
+++ b/miasm2/jitter/loader/elf.py
@@ -47,13 +47,13 @@ def preload_elf(vm, e, runtime_lib, patch_vm_imp=True):
 
 
 
-def vm_load_elf(vm, fname, **kargs):
+def vm_load_elf(vm, fdata, **kargs):
     """
     Very dirty elf loader
     TODO XXX: implement real loader
     """
     #log.setLevel(logging.DEBUG)
-    e = elf_init.ELF(open(fname, 'rb').read(), **kargs)
+    e = elf_init.ELF(fdata, **kargs)
     i = interval()
     all_data = {}
     for p in e.ph.phlist:
diff --git a/miasm2/jitter/loader/pe.py b/miasm2/jitter/loader/pe.py
index f492cba3..12a62efa 100644
--- a/miasm2/jitter/loader/pe.py
+++ b/miasm2/jitter/loader/pe.py
@@ -88,9 +88,9 @@ def get_export_name_addr_list(e):
 
 
 
-def vm_load_pe(vm, fname, align_s=True, load_hdr=True,
+def vm_load_pe(vm, fdata, align_s=True, load_hdr=True,
                **kargs):
-    e = pe_init.PE(open(fname, 'rb').read(), **kargs)
+    e = pe_init.PE(fdata, **kargs)
 
     aligned = True
     for s in e.SHList:
@@ -162,7 +162,8 @@ def vm_load_pe(vm, fname, align_s=True, load_hdr=True,
 
 def vm_load_pe_lib(fname_in, libs, lib_path_base, patch_vm_imp, **kargs):
     fname = os.path.join(lib_path_base, fname_in)
-    e = vm_load_pe(fname, **kargs)
+    with open(fname) as fstream:
+        e = vm_load_pe(fstream.read(), **kargs)
     libs.add_export_lib(e, fname_in)
     # preload_pe(e, libs, patch_vm_imp)
     return e