diff options
| -rw-r--r-- | miasm2/jitter/loader/elf.py | 9 | ||||
| -rw-r--r-- | miasm2/jitter/loader/utils.py | 4 |
2 files changed, 9 insertions, 4 deletions
diff --git a/miasm2/jitter/loader/elf.py b/miasm2/jitter/loader/elf.py index db0f1cb7..336f522a 100644 --- a/miasm2/jitter/loader/elf.py +++ b/miasm2/jitter/loader/elf.py @@ -42,8 +42,13 @@ def preload_elf(vm, e, runtime_lib, patch_vm_imp=True): dyn_funcs[libname_s] = ad_libfunc if patch_vm_imp: log.debug('patch 0x%x 0x%x %s', ad, ad_libfunc, libfunc) - vm.set_mem( - ad, struct.pack(cstruct.size2type[e.size], ad_libfunc)) + set_endianness = { elf_csts.ELFDATA2MSB: ">", + elf_csts.ELFDATA2LSB: "<", + elf_csts.ELFDATANONE: "" }[e.sex] + vm.set_mem(ad, + struct.pack(set_endianness + + cstruct.size2type[e.size], + ad_libfunc)) return runtime_lib, dyn_funcs diff --git a/miasm2/jitter/loader/utils.py b/miasm2/jitter/loader/utils.py index 434e5f7e..a3a0ecd1 100644 --- a/miasm2/jitter/loader/utils.py +++ b/miasm2/jitter/loader/utils.py @@ -43,7 +43,7 @@ class libimp(object): log.warning("Create dummy entry for %r", name) self.fake_libs.add(name) self.name2off[name] = ad - self.libbase2lastad[ad] = ad + 0x1 + self.libbase2lastad[ad] = ad + 0x4 self.lib_imp2ad[ad] = {} self.lib_imp2dstad[ad] = {} self.libbase_ad += 0x1000 @@ -67,7 +67,7 @@ class libimp(object): return self.lib_imp2ad[libad][imp_ord_or_name] # log.debug('new imp %s %s' % (imp_ord_or_name, dst_ad)) ad = self.libbase2lastad[libad] - self.libbase2lastad[libad] += 0x11 # arbitrary + self.libbase2lastad[libad] += 0x10 # arbitrary self.lib_imp2ad[libad][imp_ord_or_name] = ad name_inv = dict([(x[1], x[0]) for x in self.name2off.items()]) |