diff options
Diffstat (limited to 'src/analysis/disass/disassembler.c')
-rw-r--r-- | src/analysis/disass/disassembler.c | 87 |
1 files changed, 39 insertions, 48 deletions
diff --git a/src/analysis/disass/disassembler.c b/src/analysis/disass/disassembler.c index efe50e1..0995b63 100644 --- a/src/analysis/disass/disassembler.c +++ b/src/analysis/disass/disassembler.c @@ -56,9 +56,6 @@ static void process_all_routines(wgroup_id_t, GtkStatusStack *, const char *, rt /* Réalise un désassemblage effectif. */ static void compute_disassembly(GLoadedBinary *, GProcContext *, wgroup_id_t, GtkStatusStack *); -/* Imprime le résultat d'un désassemblage. */ -static void output_disassembly(GLoadedBinary *, GProcContext *, GtkStatusStack *, GBufferCache **); - /****************************************************************************** @@ -339,6 +336,44 @@ static void compute_disassembly(GLoadedBinary *binary, GProcContext *context, wg /****************************************************************************** * * * Paramètres : binary = représentation de binaire chargé. * +* gid = groupe de travail dédié. * +* status = barre de statut à tenir informée. * +* context = contexte de désassemblage. [OUT] * +* * +* Description : Procède au désassemblage d'un contenu binaire donné. * +* * +* Retour : - * +* * +* Remarques : - * +* * +******************************************************************************/ + +void disassemble_binary(GLoadedBinary *binary, wgroup_id_t gid, GtkStatusStack *status, GProcContext **context) +{ + GArchProcessor *proc; /* Architecture du binaire */ + + /* Préparatifs */ + + process_disassembly_event(PGA_DISASSEMBLY_STARTED, binary); + + proc = g_loaded_binary_get_processor(binary); + + *context = g_arch_processor_get_context(proc); + + g_object_unref(G_OBJECT(proc)); + + /* Lancement des opérations ! */ + + compute_disassembly(binary, *context, gid, status); + + process_disassembly_event(PGA_DISASSEMBLY_ENDED, binary); + +} + + +/****************************************************************************** +* * +* Paramètres : binary = représentation de binaire chargé. * * context = contexte de désassemblage utilisé. * * status = barre de statut à tenir informée. * * cache = tampon de code mis en place. [OUT] * @@ -351,7 +386,7 @@ static void compute_disassembly(GLoadedBinary *binary, GProcContext *context, wg * * ******************************************************************************/ -static void output_disassembly(GLoadedBinary *binary, GProcContext *context, GtkStatusStack *status, GBufferCache **cache) +void output_disassembly(GLoadedBinary *binary, GProcContext *context, GtkStatusStack *status, GBufferCache **cache) { GBinFormat *format; /* Format associé au binaire */ GBinContent *content; /* Contenu bianire manipulé */ @@ -428,50 +463,6 @@ static void output_disassembly(GLoadedBinary *binary, GProcContext *context, Gtk g_object_unref(G_OBJECT(content)); g_object_unref(G_OBJECT(format)); -} - - -/****************************************************************************** -* * -* Paramètres : binary = représentation de binaire chargé. * -* gid = groupe de travail dédié. * -* status = barre de statut à tenir informée. * -* cache = tampon de code mis en place. [OUT] * -* * -* Description : Procède au désassemblage d'un contenu binaire donné. * -* * -* Retour : - * -* * -* Remarques : - * -* * -******************************************************************************/ - -void disassemble_binary(GLoadedBinary *binary, wgroup_id_t gid, GtkStatusStack *status, GBufferCache **cache) -{ - GArchProcessor *proc; /* Architecture du binaire */ - GProcContext *context; /* Contexte de suivi dédié */ - - /* Préparatifs */ - - process_disassembly_event(PGA_DISASSEMBLY_STARTED, binary); - - proc = g_loaded_binary_get_processor(binary); - - context = g_arch_processor_get_context(proc); - - /* Lancement des opérations ! */ - - compute_disassembly(binary, context, gid, status); - - process_disassembly_event(PGA_DISASSEMBLY_ENDED, binary); - - if (!is_batch_mode()) - output_disassembly(binary, context, status, cache); - - /* Nettoyage final et sortie ! */ - g_object_unref(G_OBJECT(context)); - g_object_unref(G_OBJECT(proc)); - } |