about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorCamille Mougey <commial@gmail.com>2015-05-26 08:27:45 +0200
committerCamille Mougey <commial@gmail.com>2015-05-26 08:27:45 +0200
commit027817a6f382d8c603631e459ac2fd7d73851bed (patch)
treed3980562e8c1500d628570599c19a99afeccd553
parentf69ba70ca17155de58811b10f52b4c011865a21d (diff)
parentfeaa2b486ab69d34a500bcab2ec19b169bbd53c3 (diff)
downloadmiasm-027817a6f382d8c603631e459ac2fd7d73851bed.tar.gz
miasm-027817a6f382d8c603631e459ac2fd7d73851bed.zip
Merge pull request #168 from serpilliere/fix_vm2pe_64
Loader/Pe: fix vm2pe for 64 bit pe
-rw-r--r--miasm2/jitter/loader/pe.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/miasm2/jitter/loader/pe.py b/miasm2/jitter/loader/pe.py
index 7bf8482b..3233cd4b 100644
--- a/miasm2/jitter/loader/pe.py
+++ b/miasm2/jitter/loader/pe.py
@@ -226,7 +226,11 @@ def vm2pe(myjit, fname, libs=None, e_orig=None,
           min_addr=None, max_addr=None,
           min_section_offset=0x1000, img_base=None,
           added_funcs=None):
-    mye = pe_init.PE()
+    if e_orig:
+        size = e_orig._wsize
+    else:
+        size = 32
+    mye = pe_init.PE(wsize=size)
 
     if min_addr is None and e_orig is not None:
         min_addr = min([e_orig.rva2virt(s.addr) for s in e_orig.SHList])
@@ -241,7 +245,7 @@ def vm2pe(myjit, fname, libs=None, e_orig=None,
     all_mem = myjit.vm.get_all_memory()
     addrs = all_mem.keys()
     addrs.sort()
-    mye.Opthdr.AddressOfEntryPoint = mye.virt2rva(myjit.cpu.EIP)
+    mye.Opthdr.AddressOfEntryPoint = mye.virt2rva(myjit.pc)
     first = True
     for ad in addrs:
         if not min_addr <= ad < max_addr: