From 87303e86f40be3d87241775f33e5bb1eb21894d5 Mon Sep 17 00:00:00 2001 From: pancake Date: Thu, 12 Apr 2018 01:01:51 +0200 Subject: [PATCH] Implement 'aaf' analyze all functions. using afr and hasnext Works pretty well on x86 --- libr/core/cmd_anal.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/libr/core/cmd_anal.c b/libr/core/cmd_anal.c index 5ea8aae482..d94de9055e 100644 --- a/libr/core/cmd_anal.c +++ b/libr/core/cmd_anal.c @@ -40,6 +40,7 @@ static const char *help_msg_aa[] = { "aad", " [len]", "analyze data references to code", "aae", " [len] ([addr])", "analyze references with ESIL (optionally to address)", "aaE", "", "run aef on all functions (same as aef @@f)", + "aaf", " ", "analyze all functions (e anal.hasnext=1;afr @@c:isq)", "aai", "[j]", "show info of all analysis parameters", "aan", "", "autoname functions that either start with fcn.* or sym.func.*", "aap", "", "find and analyze function preludes", @@ -6224,6 +6225,14 @@ static int cmd_anal_all(RCore *core, const char *input) { case 'b': // "aab" cmd_anal_blocks (core, input + 1); break; // "aab" + case 'f': // "aaf" + { + int analHasnext = r_config_get_i (core->config, "anal.hasnext"); + r_config_set_i (core->config, "anal.hasnext", true); + r_core_cmd0 (core, "afr@@c:isq"); + r_config_set_i (core->config, "anal.hasnext", analHasnext); + } + break; case 'c': // "aac" switch (input[1]) { case '*':