diff --git a/libr/core/cconfig.c b/libr/core/cconfig.c index 9312e98115453..e91860d1862fa 100644 --- a/libr/core/cconfig.c +++ b/libr/core/cconfig.c @@ -246,6 +246,13 @@ static bool cb_anal_flagends(void *user, void *data) { return true; } +static bool cb_anal_icods(void *user, void *data) { + RCore *core = (RCore*) user; + RConfigNode *node = (RConfigNode*) data; + core->anal->opt.icods = node->i_value; + return true; +} + static bool cb_anal_jmpretpoline(void *user, void *data) { RCore *core = (RCore*) user; RConfigNode *node = (RConfigNode*) data; @@ -3548,6 +3555,7 @@ R_API int r_core_config_init(RCore *core) { NULL); SETI ("anal.timeout", 0, "stop analyzing after a couple of seconds"); SETCB ("anal.flagends", "true", &cb_anal_flagends, "end function when a flag is found"); + SETCB ("anal.icods", "true", &cb_anal_icods, "analyze indirect code references"); SETCB ("anal.jmp.retpoline", "true", &cb_anal_jmpretpoline, "analyze retpolines, may be slower if not needed"); SETCB ("anal.jmp.tailcall", "true", &cb_anal_jmptailcall, "consume a branch as a call if delta is a function"); SETICB ("anal.jmp.tailcall.delta", 0, &cb_anal_jmptailcall_delta, "consume a branch as a call if delta is big");