diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2009-08-09 18:12:27 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2009-08-09 18:12:27 (GMT) |
commit | 5cd25c4adfe0426520a51a76de3f77c77cfa4b8e (patch) | |
tree | 396514971fb78e81b7bb55c9cd3331d87b45ca9a /src/analysis/binary.c | |
parent | d02deb2425d6559c357bdd00e1c0fb05f35d5fc9 (diff) |
Reorganized the way formats are handled (Java and PE got disabled, Dwarf is empty).
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@105 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/analysis/binary.c')
-rw-r--r-- | src/analysis/binary.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/src/analysis/binary.c b/src/analysis/binary.c index 9351c48..38d3d19 100644 --- a/src/analysis/binary.c +++ b/src/analysis/binary.c @@ -41,6 +41,7 @@ #include "line_prologue.h" #include "prototype.h" #include "../common/extstr.h" +#include "../format/format.h" #include "../panel/log.h" #include "../plugins/pglist.h" @@ -67,7 +68,7 @@ struct _GOpenidaBinary off_t bin_length; /* Taille des données brutes */ bin_t *bin_data; /* Données binaires brutes */ - exe_format *format; /* Format du binaire */ + GExeFormat *format; /* Format du binaire */ GArchProcessor *proc; /* Architecture du binaire */ GRenderingLine *lines; /* Lignes de rendu en place */ @@ -174,10 +175,10 @@ GOpenidaBinary *g_openida_binary_new_from_file(const char *filename) result->bin_data = map_binary_file(filename, &result->bin_length); if (result->bin_data == NULL) goto lbf_error; - result->format = load_new_exe_format(result->bin_data, result->bin_length); + result->format = G_EXE_FORMAT(load_new_format(FMT_EXEC, result->bin_data, result->bin_length)); if (result->format == NULL) goto lbf_error; - switch (get_exe_target_machine(result->format)) + switch (g_exe_format_get_target_machine(result->format)) { case FTM_JVM: log_simple_message(LMT_INFO, _("Detected architecture: Java Virtual Machine")); @@ -312,14 +313,13 @@ bool g_openida_binary_save(const GOpenidaBinary *binary, xmlDocPtr xdoc, xmlXPat void g_openida_binary_analyse(GOpenidaBinary *binary) { GDelayedManager *manager; /* Gestionnaire de différés */ - bin_part **parts; /* Parties d'élément binaire */ + GBinPart **parts; /* Parties d'élément binaire */ size_t parts_count; /* Nombre de ces parties */ manager = get_delayed_manager(); - parts = /* !!! */get_elf_default_code_parts(binary->format, &parts_count); - qsort(parts, parts_count, sizeof(bin_part *), compare_bin_parts); - + parts = g_exe_format_get_parts(binary->format, &parts_count); + qsort(parts, parts_count, sizeof(GBinPart *), g_binary_part_compare); g_signal_connect(manager, "disassembly-completed", @@ -407,7 +407,7 @@ bin_t *g_openida_binary_get_data(const GOpenidaBinary *binary, off_t *length) * * ******************************************************************************/ -exe_format *g_openida_binary_get_format(const GOpenidaBinary *binary) +GExeFormat *g_openida_binary_get_format(const GOpenidaBinary *binary) { return binary->format; @@ -623,7 +623,8 @@ void ack_completed_disassembly(GDelayedManager *manager, GOpenidaBinary *binary, - line = g_rendering_line_find_by_address(lines, NULL, get_exe_entry_point(binary->format)); + line = g_rendering_line_find_by_address(lines, NULL, + g_exe_format_get_entry_point(binary->format)); if (line != NULL) g_rendering_line_add_flag(line, RLF_ENTRY_POINT); /* Action post-désassemblage */ |