diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2015-03-31 23:20:33 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2015-03-31 23:20:33 (GMT) |
commit | 5cc7bd39ae41af40a0c939acf98f90bf1375effd (patch) | |
tree | 4f7140e2c5a8d939c672fb941e66903300229e82 /src/analysis/disass/disassembler.c | |
parent | 52e036040b5e0ad8acde3d467ac8d9ca43ed414c (diff) |
Saved some progress in the definition of basic blocks.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@497 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/analysis/disass/disassembler.c')
-rw-r--r-- | src/analysis/disass/disassembler.c | 37 |
1 files changed, 35 insertions, 2 deletions
diff --git a/src/analysis/disass/disassembler.c b/src/analysis/disass/disassembler.c index 95d95d0..fcc41cb 100644 --- a/src/analysis/disass/disassembler.c +++ b/src/analysis/disass/disassembler.c @@ -186,6 +186,8 @@ static GDelayedDisassembly *g_delayed_disassembly_new(GLoadedBinary *binary, GAr static void g_delayed_disassembly_process(GDelayedDisassembly *disass, GtkExtStatusBar *statusbar) { + //GBinFormat *format; /* Format du fichier binaire */ + GArchProcessor *proc; /* Architecture du binaire */ unsigned int valid; /* Instructions traduites */ @@ -199,9 +201,12 @@ static void g_delayed_disassembly_process(GDelayedDisassembly *disass, GtkExtSta bstatus_id_t id; /* Identifiant de statut */ - GArchProcessor *proc; /* Architecture du binaire */ + //GArchProcessor *proc; /* Architecture du binaire */ + //format = G_BIN_FORMAT(g_loaded_binary_get_format(binary)); + proc = g_loaded_binary_get_processor(disass->binary); + routines = g_binary_format_get_routines(G_BIN_FORMAT(disass->format), &routines_count); @@ -219,6 +224,8 @@ static void g_delayed_disassembly_process(GDelayedDisassembly *disass, GtkExtSta *disass->instrs = disassemble_binary_content(disass->binary, statusbar); + g_arch_processor_set_disassembled_instructions(proc, *disass->instrs); + /* *disass->instrs = disassemble_binary_parts(disass->binary, disass->parts, disass->count, @@ -229,6 +236,32 @@ static void g_delayed_disassembly_process(GDelayedDisassembly *disass, GtkExtSta + 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_LINK, proc, /*ctx*/NULL, format); + + + + } + + + + } while (0); + + + //gtk_extended_status_bar_remove(statusbar, id); @@ -250,7 +283,7 @@ static void g_delayed_disassembly_process(GDelayedDisassembly *disass, GtkExtSta iter = g_arch_instruction_get_next_iter(*disass->instrs, iter, 0)) { - g_arch_instruction_call_hook(iter, IPH_POST, /*ctx*/NULL, format); + g_arch_instruction_call_hook(iter, IPH_POST, proc, /*ctx*/NULL, format); |