diff options
Diffstat (limited to 'plugins/elf/format.c')
-rw-r--r-- | plugins/elf/format.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/plugins/elf/format.c b/plugins/elf/format.c index d48eef9..755bc12 100644 --- a/plugins/elf/format.c +++ b/plugins/elf/format.c @@ -36,6 +36,7 @@ #include "elf-int.h" +#include "helper_arm.h" #include "program.h" #include "section.h" #include "strings.h" @@ -292,6 +293,25 @@ GBinFormat *g_elf_format_new(GBinContent *content, GExeFormat *parent, GtkStatus } + /* Opérations spécifiques à l'architecture */ + + switch (ELF_HDR(result, result->header, e_machine)) + { + case EM_ARM: + result->ops.get_type_desc = (get_elf_prgm_type_desc_cb)get_elf_program_arm_type_desc; + result->ops.fix_virt = (fix_elf_virt_addr_cb)fix_elf_arm_virtual_address; + result->ops.get_linkage_offset = (get_elf_linkage_offset_cb)retrieve_arm_linkage_offset; + break; + + default: + log_variadic_message(LMT_ERROR, "Architecture not supported for ELF binaries"); + goto gefn_error; + break; + + } + + /* Chargements des informations utiles */ + /** * On inscrit les éléments préchargés avant tout ! * |