diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2018-06-17 13:17:54 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2018-06-17 13:17:54 (GMT) |
commit | 1f7e9506775f66a3a5f2859779d33b914eee8ef4 (patch) | |
tree | 1a34bde49fbbf4e809d4f37ad07f49ac5819d90b /src | |
parent | e1cf7de1c136e39c67facea8395f58cb3afff790 (diff) |
Extended the environment provided with the plugins API.
Diffstat (limited to 'src')
-rw-r--r-- | src/analysis/disass/disassembler.c | 16 | ||||
-rw-r--r-- | src/plugins/pglist.h | 4 | ||||
-rw-r--r-- | src/plugins/plugin-int.h | 2 | ||||
-rw-r--r-- | src/plugins/plugin.c | 6 | ||||
-rw-r--r-- | src/plugins/plugin.h | 2 |
5 files changed, 16 insertions, 14 deletions
diff --git a/src/analysis/disass/disassembler.c b/src/analysis/disass/disassembler.c index a88ba1e..6e71ed6 100644 --- a/src/analysis/disass/disassembler.c +++ b/src/analysis/disass/disassembler.c @@ -261,7 +261,7 @@ static void compute_disassembly(GLoadedBinary *binary, GProcContext *context, wg g_arch_processor_set_instructions(proc, instrs, count); - process_disassembly_event(PGA_DISASSEMBLY_RAW, binary); + process_disassembly_event(PGA_DISASSEMBLY_RAW, binary, status, context); } @@ -275,7 +275,7 @@ static void compute_disassembly(GLoadedBinary *binary, GProcContext *context, wg g_instructions_study_do_link_operation, proc, context, format); - process_disassembly_event(PGA_DISASSEMBLY_HOOKED_LINK, binary); + process_disassembly_event(PGA_DISASSEMBLY_HOOKED_LINK, binary, status, context); } @@ -287,7 +287,7 @@ static void compute_disassembly(GLoadedBinary *binary, GProcContext *context, wg g_instructions_study_do_post_operation, proc, context, format); - process_disassembly_event(PGA_DISASSEMBLY_HOOKED_POST, binary); + process_disassembly_event(PGA_DISASSEMBLY_HOOKED_POST, binary, status, context); /** * Quatrième étape : établissement des couvertures de routines restantes. @@ -297,7 +297,7 @@ static void compute_disassembly(GLoadedBinary *binary, GProcContext *context, wg _("Finding remaining limits..."), g_routines_study_compute_limits, proc, G_BIN_FORMAT(format)); - process_disassembly_event(PGA_DISASSEMBLY_LIMITED, binary); + process_disassembly_event(PGA_DISASSEMBLY_LIMITED, binary, status, context); /** * Cinquième étape : liaisons entre instructions. @@ -309,7 +309,7 @@ static void compute_disassembly(GLoadedBinary *binary, GProcContext *context, wg g_instructions_study_establish_links, proc, context, format); - process_disassembly_event(PGA_DISASSEMBLY_LINKED, binary); + process_disassembly_event(PGA_DISASSEMBLY_LINKED, binary, status, context); } @@ -321,7 +321,7 @@ static void compute_disassembly(GLoadedBinary *binary, GProcContext *context, wg _("Control-flow analysis for routines..."), g_routines_study_handle_blocks, proc, G_BIN_FORMAT(format)); - process_disassembly_event(PGA_DISASSEMBLY_GROUPED, binary); + process_disassembly_event(PGA_DISASSEMBLY_GROUPED, binary, status, context); /** * Nettoyage final et sortie ! @@ -355,7 +355,7 @@ void disassemble_binary(GLoadedBinary *binary, wgroup_id_t gid, GtkStatusStack * /* Préparatifs */ - process_disassembly_event(PGA_DISASSEMBLY_STARTED, binary); + process_disassembly_event(PGA_DISASSEMBLY_STARTED, binary, status, NULL); proc = g_loaded_binary_get_processor(binary); @@ -367,7 +367,7 @@ void disassemble_binary(GLoadedBinary *binary, wgroup_id_t gid, GtkStatusStack * compute_disassembly(binary, *context, gid, status); - process_disassembly_event(PGA_DISASSEMBLY_ENDED, binary); + process_disassembly_event(PGA_DISASSEMBLY_ENDED, binary, status, *context); } diff --git a/src/plugins/pglist.h b/src/plugins/pglist.h index 4c8194d..20f0031 100644 --- a/src/plugins/pglist.h +++ b/src/plugins/pglist.h @@ -103,8 +103,8 @@ GPluginModule **get_all_plugins_for_action(PluginAction, size_t *); /* DPS_DISASSEMBLY */ -#define process_disassembly_event(a, b) \ - process_all_plugins_for(a, g_plugin_module_process_disassembly_event, b) +#define process_disassembly_event(a, b, s, c) \ + process_all_plugins_for(a, g_plugin_module_process_disassembly_event, b, s, c) diff --git a/src/plugins/plugin-int.h b/src/plugins/plugin-int.h index 4625ec7..ee7c442 100644 --- a/src/plugins/plugin-int.h +++ b/src/plugins/plugin-int.h @@ -41,7 +41,7 @@ typedef bool (* pg_management_fc) (GPluginModule *); /* Exécute une action pendant un désassemblage de binaire. */ -typedef void (* pg_process_disassembly_fc) (const GPluginModule *, PluginAction, GLoadedBinary *); +typedef void (* pg_process_disassembly_fc) (const GPluginModule *, PluginAction, GLoadedBinary *, GtkStatusStack *, GProcContext *); diff --git a/src/plugins/plugin.c b/src/plugins/plugin.c index c74043d..3d1350d 100644 --- a/src/plugins/plugin.c +++ b/src/plugins/plugin.c @@ -777,6 +777,8 @@ bool g_plugin_module_preload_binary_format(const GPluginModule *plugin, PluginAc * Paramètres : plugin = greffon à manipuler. * * action = type d'action attendue. * * binary = binaire dont le contenu est en cours de traitement. * +* status = barre de statut à tenir informée. * +* context = contexte de désassemblage. * * * * Description : Exécute une action pendant un désassemblage de binaire. * * * @@ -786,8 +788,8 @@ bool g_plugin_module_preload_binary_format(const GPluginModule *plugin, PluginAc * * ******************************************************************************/ -void g_plugin_module_process_disassembly_event(const GPluginModule *plugin, PluginAction action, GLoadedBinary *binary) +void g_plugin_module_process_disassembly_event(const GPluginModule *plugin, PluginAction action, GLoadedBinary *binary, GtkStatusStack *status, GProcContext *context) { - plugin->process_disass(plugin, action, binary); + plugin->process_disass(plugin, action, binary, status, context); } diff --git a/src/plugins/plugin.h b/src/plugins/plugin.h index 5837078..17a9f33 100644 --- a/src/plugins/plugin.h +++ b/src/plugins/plugin.h @@ -101,7 +101,7 @@ bool g_plugin_module_handle_binary_format(const GPluginModule *, PluginAction, G bool g_plugin_module_preload_binary_format(const GPluginModule *, PluginAction, GBinFormat *, GPreloadInfo *, GtkStatusStack *); /* Exécute une action pendant un désassemblage de binaire. */ -void g_plugin_module_process_disassembly_event(const GPluginModule *, PluginAction, GLoadedBinary *); +void g_plugin_module_process_disassembly_event(const GPluginModule *, PluginAction, GLoadedBinary *, GtkStatusStack *, GProcContext *); |