diff options
| author | serpilliere <devnull@localhost> | 2011-08-26 14:19:32 +0200 |
|---|---|---|
| committer | serpilliere <devnull@localhost> | 2011-08-26 14:19:32 +0200 |
| commit | b90343ca415119d9e997c01cc3335691eee1220f (patch) | |
| tree | 4ce8a0f023be0e0a600391f74997b366040703b2 /example | |
| parent | bbd7e71ada55e23fe857a7c9954687ff987dec7c (diff) | |
| download | miasm-b90343ca415119d9e997c01cc3335691eee1220f.tar.gz miasm-b90343ca415119d9e997c01cc3335691eee1220f.zip | |
WORKAROUND exception while translating code
the disasm engine should not raise vm exception when translate code. for the moment use vm_exception_reset after each update_bloc
Diffstat (limited to '')
| -rwxr-xr-x | example/emulx86_bin.py | 4 | ||||
| -rw-r--r-- | example/sandbox_elf.py | 1 | ||||
| -rw-r--r-- | example/sandbox_pe.py | 2 |
3 files changed, 7 insertions, 0 deletions
diff --git a/example/emulx86_bin.py b/example/emulx86_bin.py index 151370b4..eab57408 100755 --- a/example/emulx86_bin.py +++ b/example/emulx86_bin.py @@ -13,6 +13,9 @@ import sys if len(sys.argv) <3: print 'usage:' print "%s rawfile address_to_exec"%sys.argv[0] + print 'exemple:' + print "%s x86_sc.bin 0"%sys.argv[0] + sys.exit(0) data = open(sys.argv[1], 'rb').read() ad = sys.argv[2].lower() @@ -58,6 +61,7 @@ def run_bin(my_eip, known_blocs, code_blocs_mem_range): if not my_eip in known_blocs: updt_bloc_emul(known_blocs, in_str, my_eip, symbol_pool, code_blocs_mem_range, log_regs = log_regs, log_mn = log_mn) + vm_reset_exception() try: my_eip = vm_exec_blocs(my_eip, known_blocs) except KeyboardInterrupt: diff --git a/example/sandbox_elf.py b/example/sandbox_elf.py index 7550cb20..f8e308e2 100644 --- a/example/sandbox_elf.py +++ b/example/sandbox_elf.py @@ -96,6 +96,7 @@ def run_bin(my_eip, known_blocs, code_blocs_mem_range): last_blocs.pop(0) last_blocs.append(my_eip) updt_bloc_emul(known_blocs, in_str, my_eip, symbol_pool, code_blocs_mem_range, log_regs = log_regs, log_mn = log_mn) + vm_reset_exception() try: diff --git a/example/sandbox_pe.py b/example/sandbox_pe.py index 4c1e9b17..75e9b306 100644 --- a/example/sandbox_pe.py +++ b/example/sandbox_pe.py @@ -106,6 +106,8 @@ def run_bin(my_eip, known_blocs, code_blocs_mem_range): if not my_eip in known_blocs: updt_bloc_emul(known_blocs, in_str, my_eip, symbol_pool, code_blocs_mem_range, log_regs = log_regs, log_mn = log_mn) + vm_reset_exception() + try: my_eip = vm_exec_blocs(my_eip, known_blocs) except KeyboardInterrupt: |