diff options
Diffstat (limited to 'src/analysis/disass/disassembler.c')
-rw-r--r-- | src/analysis/disass/disassembler.c | 45 |
1 files changed, 29 insertions, 16 deletions
diff --git a/src/analysis/disass/disassembler.c b/src/analysis/disass/disassembler.c index e20429c..77e64d7 100644 --- a/src/analysis/disass/disassembler.c +++ b/src/analysis/disass/disassembler.c @@ -29,7 +29,7 @@ #include <string.h> -#include <i18n.h> +#include <i18n.h> ///// #include "fetch.h" @@ -191,7 +191,7 @@ static GDelayedDisassembly *g_delayed_disassembly_new(GLoadedBinary *binary, GBi * Remarques : - * * * ******************************************************************************/ -#include "../../arch/vmpa.h" + #include <time.h> #include <sys/time.h> @@ -213,10 +213,6 @@ static void g_delayed_disassembly_process(GDelayedDisassembly *disass, GtkExtSta - vmpa2t base; - - - clock_t begin, end; double time_spent; @@ -229,10 +225,8 @@ static void g_delayed_disassembly_process(GDelayedDisassembly *disass, GtkExtSta /* Première étape */ - id = gtk_extended_status_bar_push(statusbar, _("Disassembling..."), true); - + //id = gtk_extended_status_bar_push(statusbar, _("Disassembling..."), true); - init_vmpa(&base, 0, 0); @@ -243,10 +237,7 @@ static void g_delayed_disassembly_process(GDelayedDisassembly *disass, GtkExtSta ustart += usage.ru_stime.tv_sec * 1000000 + usage.ru_stime.tv_usec; - //*disass->instrs = load_raw_binary(disass->binary, &base, 314744/*100*/, statusbar, id); - - - *disass->instrs = disassemble_binary_content(disass->binary, statusbar, id); + *disass->instrs = disassemble_binary_content(disass->binary, statusbar); @@ -271,19 +262,41 @@ static void g_delayed_disassembly_process(GDelayedDisassembly *disass, GtkExtSta - gtk_extended_status_bar_remove(statusbar, id); + //gtk_extended_status_bar_remove(statusbar, id); run_plugins_on_binary(disass->binary, PGA_BINARY_DISASSEMBLED, true); + do + { + GBinFormat *format; /* Format du fichier binaire */ + GArchInstruction *iter; /* Boucle de parcours */ + + + + format = G_BIN_FORMAT(g_loaded_binary_get_format(disass->binary)); + + for (iter = *disass->instrs; + iter != NULL; + iter = g_arch_instruction_get_next_iter(*disass->instrs, iter, 0)) + { + + g_arch_instruction_call_hook(iter, IPH_POST, /*ctx*/NULL, format); + + + } + + + + } while (0); /* Septième étape */ - id = gtk_extended_status_bar_push(statusbar, _("Printing disassembled code..."), true); + //id = gtk_extended_status_bar_push(statusbar, _("Printing disassembled code..."), true); qsort(routines, routines_count, sizeof(GBinRoutine *), (__compar_fn_t)g_binary_routine_compare); @@ -315,7 +328,7 @@ static void g_delayed_disassembly_process(GDelayedDisassembly *disass, GtkExtSta printf("[[ TIME ]] Printing :: %.2g (%.2g)\n", time_spent, (uend - ustart) / 1000000.0); - gtk_extended_status_bar_remove(statusbar, id); + //gtk_extended_status_bar_remove(statusbar, id); run_plugins_on_binary(disass->binary, PGA_BINARY_PRINTED, true); |