From 820873ad5fb20168ba2718eef28505144bd06ccd Mon Sep 17 00:00:00 2001 From: William Bruneau Date: Mon, 18 Jun 2018 15:28:56 +0200 Subject: Allow symbolic execution of one instruction in IDA --- example/ida/symbol_exec.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'example') diff --git a/example/ida/symbol_exec.py b/example/ida/symbol_exec.py index 63014ece..49c6fdb6 100644 --- a/example/ida/symbol_exec.py +++ b/example/ida/symbol_exec.py @@ -134,6 +134,10 @@ def symbolic_exec(): mdis = machine.dis_engine(bs) start, end = idc.SelStart(), idc.SelEnd() + if start == idc.BADADDR and end == idc.BADADDR: + start = idc.ScreenEA() + end = idc.next_head(start) # Get next instruction address + mdis.dont_dis = [end] asmcfg = mdis.dis_multiblock(start) ira = machine.ira(symbol_pool=mdis.symbol_pool) @@ -151,7 +155,8 @@ def symbolic_exec(): view = symbolicexec_t() all_views.append(view) if not view.Create(modified, machine, mdis.symbol_pool, - "Symbolic Execution - 0x%x to 0x%x" % (start, end)): + "Symbolic Execution - 0x%x to 0x%x" + % (start, idc.prev_head(end))): return view.Show() -- cgit 1.4.1