diff options
| author | Camille Mougey <camille.mougey@cea.fr> | 2014-12-18 21:05:20 +0100 |
|---|---|---|
| committer | Camille Mougey <camille.mougey@cea.fr> | 2014-12-20 17:44:23 +0100 |
| commit | 115e7529d4c33686e294b9cc8099ea92eea815d9 (patch) | |
| tree | d4062e6ce6e4b86e3715bae5690654e2365223e9 | |
| parent | 307d43e4c643e55d6ddcc9b29152e526c1dae31f (diff) | |
| download | miasm-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.py | 4 | ||||
| -rw-r--r-- | miasm2/jitter/loader/pe.py | 7 |
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 |