about summary refs log tree commit diff stats
path: root/example
diff options
context:
space:
mode:
Diffstat (limited to 'example')
-rw-r--r--example/symbol_exec/symbol_exec.py11
1 files changed, 10 insertions, 1 deletions
diff --git a/example/symbol_exec/symbol_exec.py b/example/symbol_exec/symbol_exec.py
index 84418da5..1d3f4576 100644
--- a/example/symbol_exec/symbol_exec.py
+++ b/example/symbol_exec/symbol_exec.py
@@ -26,7 +26,16 @@ machine = Machine(cont.arch)
 
 mdis = machine.dis_engine(cont.bin_stream, loc_db=cont.loc_db)
 
-addr = cont.entry_point if options.address is None else int(options.address, 0)
+# no address -> entry point
+# 0xXXXXXX -> use this address
+# symbol -> resolve then use
+if options.address is None:
+    addr = cont.entry_point
+else:
+    try:
+        addr = int(options.address, 0)
+    except ValueError:
+        addr = loc_db.get_name_offset(options.address)
 asmcfg = mdis.dis_multiblock(addr)
 
 lifter = machine.lifter_model_call(mdis.loc_db)