diff options
Diffstat (limited to 'src/analysis/disass/fetch.c')
-rw-r--r-- | src/analysis/disass/fetch.c | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/src/analysis/disass/fetch.c b/src/analysis/disass/fetch.c index c5489d6..586c084 100644 --- a/src/analysis/disass/fetch.c +++ b/src/analysis/disass/fetch.c @@ -417,8 +417,6 @@ GArchInstruction **disassemble_binary_content(GLoadedBinary *binary, GProcContex template.areas = collect_memory_areas(gid, status, binary, length, &template.count); - populate_fresh_memory_areas(gid, status, template.areas, template.count, G_PRELOAD_INFO(ctx)); - template.status = status; /* Amorce des traitements */ @@ -432,7 +430,17 @@ GArchInstruction **disassemble_binary_content(GLoadedBinary *binary, GProcContex g_proc_context_attach_counter(template.ctx, &remaining_counter); /** - * Première phase de désassemblage : suivi des chemins tracés. + * Première phase de désassemblage : intégration des infos du format. + */ + + g_binary_format_preload_disassembling_context(format, template.ctx, status); + + populate_fresh_memory_areas(gid, status, template.areas, template.count, G_PRELOAD_INFO(ctx)); + + g_work_queue_wait_for_completion(queue, gid); + + /** + * Seconde phase : suivi des chemins tracés. */ g_work_queue_set_extra_wait_callback(queue, gid, @@ -445,12 +453,12 @@ GArchInstruction **disassemble_binary_content(GLoadedBinary *binary, GProcContex _("Disassembling following the execution flow..."), length); - g_binary_format_setup_disassembling_context(format, template.ctx, status); + g_binary_format_activate_disassembling_context(format, template.ctx, status); g_work_queue_wait_for_completion(queue, gid); /** - * Seconde phase : on comble les trous laissés. + * Troisième phase : on comble les trous laissés. */ gtk_status_stack_update_activity(status, template.id, _("Disassembling the remaining instructions...")); @@ -466,7 +474,7 @@ GArchInstruction **disassemble_binary_content(GLoadedBinary *binary, GProcContex gtk_status_stack_remove_activity(status, template.id); /** - * Troisième et dernière phase : récolte des fruits. + * Quatrième et dernière phase : récolte des fruits. */ result = collect_disassembled_instructions(gid, status, template.areas, template.count, count); |