summaryrefslogtreecommitdiff
path: root/src/analysis/disass/disassembler.c
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2014-12-31 19:58:50 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2014-12-31 19:58:50 (GMT)
commit0f571c20444dbb5d8d8d0fa46a69b31cb89f9583 (patch)
tree4349b6bdfb1b8adbdc60e0887a2a122ed857b678 /src/analysis/disass/disassembler.c
parent57d7eff57c20e75aaa4ccd34f1d9d733e12bb232 (diff)
Resolved links in disassembled instructions.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@446 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/analysis/disass/disassembler.c')
-rw-r--r--src/analysis/disass/disassembler.c45
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);