about summary refs log tree commit diff stats
path: root/miasm/jitter/loader/pe.py
diff options
context:
space:
mode:
authorWilliam Bruneau <william.bruneau@epfedu.fr>2019-09-20 11:22:44 +0200
committerWilliam Bruneau <william.bruneau@epfedu.fr>2019-09-20 11:31:34 +0200
commit42956b4895d1804251a2cc3fd2d25a62185ea641 (patch)
tree476dbeef38bd987c87faecaa142f36e15869b36a /miasm/jitter/loader/pe.py
parentee77b1bfbd6a4a69049359b188e124d85104bca5 (diff)
downloadfocaccia-miasm-42956b4895d1804251a2cc3fd2d25a62185ea641.tar.gz
focaccia-miasm-42956b4895d1804251a2cc3fd2d25a62185ea641.zip
Loader: add exception in vm2pe for PC < image base
Diffstat (limited to 'miasm/jitter/loader/pe.py')
-rw-r--r--miasm/jitter/loader/pe.py5
1 files changed, 4 insertions, 1 deletions
diff --git a/miasm/jitter/loader/pe.py b/miasm/jitter/loader/pe.py
index fc3fdb13..a82b79f6 100644
--- a/miasm/jitter/loader/pe.py
+++ b/miasm/jitter/loader/pe.py
@@ -299,7 +299,10 @@ def vm2pe(myjit, fname, libs=None, e_orig=None,
     all_mem = myjit.vm.get_all_memory()
     addrs = list(all_mem)
     addrs.sort()
-    mye.Opthdr.AddressOfEntryPoint = mye.virt2rva(myjit.pc)
+    entry_point = mye.virt2rva(myjit.pc)
+    if not 0 < entry_point < 0xFFFFFFFF:
+        raise ValueError("Cannot compute a valid entry point RVA")
+    mye.Opthdr.AddressOfEntryPoint = entry_point
     first = True
     for ad in addrs:
         if not min_addr <= ad < max_addr: