diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2015-04-04 13:31:33 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2015-04-04 13:31:33 (GMT) |
commit | 46e46c2894ea92502734c7bbd1cbcc6cb2e46d17 (patch) | |
tree | 9b338348d6bd78e71746bfb25fa8c864dfe44d1e /src/analysis/disass/disassembler.c | |
parent | d65fbe084a91d180d17767314f4e34b7456e8436 (diff) |
Updated the disassembling process order and defined ranks for basic routines.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@501 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/analysis/disass/disassembler.c')
-rw-r--r-- | src/analysis/disass/disassembler.c | 46 |
1 files changed, 29 insertions, 17 deletions
diff --git a/src/analysis/disass/disassembler.c b/src/analysis/disass/disassembler.c index fcc41cb..50c71da 100644 --- a/src/analysis/disass/disassembler.c +++ b/src/analysis/disass/disassembler.c @@ -304,28 +304,24 @@ static void g_delayed_disassembly_process(GDelayedDisassembly *disass, GtkExtSta */ + /* Seconde étape */ + routines = g_binary_format_get_routines(G_BIN_FORMAT(disass->format), &routines_count); - /* Seconde étape */ - id = gtk_extended_status_bar_push(statusbar, _("Establishing links..."), true); - /** - * - * Lequel choisir ??? + //id = gtk_extended_status_bar_push(statusbar, _("Finding remaining limits..."), true); -G_BIN_FORMAT(disass->format) -G_BIN_FORMAT(g_loaded_binary_get_format(disass->binary) + //qsort(routines, routines_count, sizeof(GBinRoutine *), (__compar_fn_t)g_binary_routine_rcompare); - */ + limit_all_routines(disass->format, proc, routines, routines_count, statusbar, id); + //gtk_extended_status_bar_remove(statusbar, id); - establish_links_between_instructions(*disass->instrs, G_BIN_FORMAT(disass->format), statusbar, id); + //run_plugins_on_binary(disass->binary, PGA_BINARY_BOUNDED, true); - gtk_extended_status_bar_remove(statusbar, id); - //run_plugins_on_binary(disass->binary, PGA_BINARY_LINKED, true); @@ -334,20 +330,24 @@ G_BIN_FORMAT(g_loaded_binary_get_format(disass->binary) /* Troisième étape */ - routines = g_binary_format_get_routines(G_BIN_FORMAT(disass->format), &routines_count); + id = gtk_extended_status_bar_push(statusbar, _("Establishing links..."), true); + /** + * + * Lequel choisir ??? +G_BIN_FORMAT(disass->format) +G_BIN_FORMAT(g_loaded_binary_get_format(disass->binary) - //id = gtk_extended_status_bar_push(statusbar, _("Finding remaining limits..."), true); + */ - //qsort(routines, routines_count, sizeof(GBinRoutine *), (__compar_fn_t)g_binary_routine_rcompare); - limit_all_routines(disass->format, routines, routines_count, statusbar, id); + establish_links_between_instructions(*disass->instrs, G_BIN_FORMAT(disass->format), statusbar, id); - //gtk_extended_status_bar_remove(statusbar, id); + gtk_extended_status_bar_remove(statusbar, id); - //run_plugins_on_binary(disass->binary, PGA_BINARY_BOUNDED, true); + //run_plugins_on_binary(disass->binary, PGA_BINARY_LINKED, true); @@ -372,6 +372,18 @@ G_BIN_FORMAT(g_loaded_binary_get_format(disass->binary) + /* Sixième étape */ + + id = gtk_extended_status_bar_push(statusbar, _("Ranking each instructions block..."), true); + + //qsort(routines, routines_count, sizeof(GBinRoutine *), (__compar_fn_t)g_binary_routine_rcompare); + + rank_routines_blocks(routines, routines_count, statusbar, id); + + gtk_extended_status_bar_remove(statusbar, id); + + //run_plugins_on_binary(disass->binary, PGA_BINARY_GROUPED, true); + |