diff --git a/librz/core/cmd/cmd_analysis.c b/librz/core/cmd/cmd_analysis.c index 9c7bb4cee7..6d49562500 100644 --- a/librz/core/cmd/cmd_analysis.c +++ b/librz/core/cmd/cmd_analysis.c @@ -1931,6 +1931,11 @@ RZ_IPI RzCmdStatus rz_analysis_print_rtti_all_handler(RzCore *core, int argc, co return RZ_CMD_STATUS_OK; } +RZ_IPI RzCmdStatus rz_analysis_recover_all_classes_from_bin_handler(RzCore *core, int argc, const char **argv) { + rz_analysis_class_recover_from_rzbin(core->analysis); + return RZ_CMD_STATUS_OK; +} + RZ_IPI RzCmdStatus rz_analysis_recover_rtti_all_handler(RzCore *core, int argc, const char **argv) { rz_analysis_rtti_recover_all(core->analysis); return RZ_CMD_STATUS_OK; diff --git a/librz/core/cmd_descs/cmd_analysis.yaml b/librz/core/cmd_descs/cmd_analysis.yaml index dcbcb3c81d..584ec3832f 100644 --- a/librz/core/cmd_descs/cmd_analysis.yaml +++ b/librz/core/cmd_descs/cmd_analysis.yaml @@ -29,6 +29,10 @@ commands: summary: Analyze all function calls to imports cname: analyze_all_function_calls_to_imports args: [] + - name: aaC + summary: Analysis classes from RzBin + cname: analysis_recover_all_classes_from_bin + args: [] - name: aad summary: Analyze data references to code cname: analyze_all_data_references_to_code diff --git a/librz/core/cmd_descs/cmd_descs.c b/librz/core/cmd_descs/cmd_descs.c index b9dfcabda1..87760e5d1d 100644 --- a/librz/core/cmd_descs/cmd_descs.c +++ b/librz/core/cmd_descs/cmd_descs.c @@ -2267,6 +2267,14 @@ static const RzCmdDescHelp analyze_all_function_calls_to_imports_help = { .args = analyze_all_function_calls_to_imports_args, }; +static const RzCmdDescArg analysis_recover_all_classes_from_bin_args[] = { + { 0 }, +}; +static const RzCmdDescHelp analysis_recover_all_classes_from_bin_help = { + .summary = "Analysis classes from RzBin", + .args = analysis_recover_all_classes_from_bin_args, +}; + static const RzCmdDescArg analyze_all_data_references_to_code_args[] = { { 0 }, }; @@ -18550,6 +18558,9 @@ RZ_IPI void rzshell_cmddescs_init(RzCore *core) { RzCmdDesc *analyze_all_function_calls_to_imports_cd = rz_cmd_desc_argv_new(core->rcmd, aac_cd, "aaci", rz_analyze_all_function_calls_to_imports_handler, &analyze_all_function_calls_to_imports_help); rz_warn_if_fail(analyze_all_function_calls_to_imports_cd); + RzCmdDesc *analysis_recover_all_classes_from_bin_cd = rz_cmd_desc_argv_new(core->rcmd, aa_cd, "aaC", rz_analysis_recover_all_classes_from_bin_handler, &analysis_recover_all_classes_from_bin_help); + rz_warn_if_fail(analysis_recover_all_classes_from_bin_cd); + RzCmdDesc *analyze_all_data_references_to_code_cd = rz_cmd_desc_argv_new(core->rcmd, aa_cd, "aad", rz_analyze_all_data_references_to_code_handler, &analyze_all_data_references_to_code_help); rz_warn_if_fail(analyze_all_data_references_to_code_cd); diff --git a/librz/core/cmd_descs/cmd_descs.h b/librz/core/cmd_descs/cmd_descs.h index 58f622027d..fd262864da 100644 --- a/librz/core/cmd_descs/cmd_descs.h +++ b/librz/core/cmd_descs/cmd_descs.h @@ -189,6 +189,8 @@ RZ_IPI RzCmdStatus rz_analyze_everything_experimental_handler(RzCore *core, int RZ_IPI RzCmdStatus rz_analyze_all_function_calls_handler(RzCore *core, int argc, const char **argv); // "aaci" RZ_IPI RzCmdStatus rz_analyze_all_function_calls_to_imports_handler(RzCore *core, int argc, const char **argv); +// "aaC" +RZ_IPI RzCmdStatus rz_analysis_recover_all_classes_from_bin_handler(RzCore *core, int argc, const char **argv); // "aad" RZ_IPI RzCmdStatus rz_analyze_all_data_references_to_code_handler(RzCore *core, int argc, const char **argv); // "aae"