summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2018-06-17 13:17:54 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2018-06-17 13:17:54 (GMT)
commit1f7e9506775f66a3a5f2859779d33b914eee8ef4 (patch)
tree1a34bde49fbbf4e809d4f37ad07f49ac5819d90b /src
parente1cf7de1c136e39c67facea8395f58cb3afff790 (diff)
Extended the environment provided with the plugins API.
Diffstat (limited to 'src')
-rw-r--r--src/analysis/disass/disassembler.c16
-rw-r--r--src/plugins/pglist.h4
-rw-r--r--src/plugins/plugin-int.h2
-rw-r--r--src/plugins/plugin.c6
-rw-r--r--src/plugins/plugin.h2
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 *);