about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--miasm2/jitter/loader/elf.py9
-rw-r--r--miasm2/jitter/loader/utils.py4
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()])