From 4edfccd95389ee3340d4b3887177b9353ae00023 Mon Sep 17 00:00:00 2001 From: Joe Ranweiler Date: Fri, 23 Feb 2018 14:47:57 -0800 Subject: [PATCH] Internally support varying take-over symbols in angr executor --- bin/deepstate/main_angr.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/bin/deepstate/main_angr.py b/bin/deepstate/main_angr.py index cade611..cd0b60b 100644 --- a/bin/deepstate/main_angr.py +++ b/bin/deepstate/main_angr.py @@ -360,13 +360,14 @@ def hook_apis(project, run_state): return mc, apis -def main_take_over(args, project): - takeover_ea = find_symbol_ea(project, 'DeepState_TakeOver') +def main_take_over(args, project, takeover_symbol): + takeover_ea = find_symbol_ea(project, takeover_symbol) hook_function(project, takeover_ea, TakeOver) if not takeover_ea: - L.critical("Cannot find symbol `DeepState_TakeOver` in binary `{}`".format( + L.critical("Cannot find symbol `{}` in binary `{}`".format( + takeover_symbol, args.binary)) return 1 @@ -385,14 +386,16 @@ def main_take_over(args, project): try: takeover_state = concrete_manager.found[0] except: - L.critical("Execution never hit `DeepState_TakeOver` in binary `{}`".format( + L.critical("Execution never hit `{}` in binary `{}`".format( + takeover_symbol, args.binary)) return 1 try: run_state = takeover_state.step().successors[0] except: - L.critical("Unable to exit from `DeepState_TakeOver` in binary `{}`".format( + L.critical("Unable to exit from `{}` in binary `{}`".format( + takeover_symbol, args.binary)) return 1 @@ -486,7 +489,7 @@ def main(): return 1 if args.take_over: - return main_take_over(args, project) + return main_take_over(args, project, 'DeepState_TakeOver') else: return main_unit_test(args, project)