diff options
Diffstat (limited to 'src/format/elf')
-rw-r--r-- | src/format/elf/e_elf.c | 24 | ||||
-rw-r--r-- | src/format/elf/e_elf.h | 2 |
2 files changed, 26 insertions, 0 deletions
diff --git a/src/format/elf/e_elf.c b/src/format/elf/e_elf.c index 48b4455..a69be68 100644 --- a/src/format/elf/e_elf.c +++ b/src/format/elf/e_elf.c @@ -44,7 +44,31 @@ size_t get_elf_resolved_items(const elf_format *, char ***, ResolvedType **, uin +/****************************************************************************** +* * +* Paramètres : content = contenu binaire à parcourir. * +* length = taille du contenu en question. * +* * +* Description : Indique si le format peut être pris en charge ici. * +* * +* Retour : true si la réponse est positive, false sinon. * +* * +* Remarques : - * +* * +******************************************************************************/ + +bool elf_is_matching(const uint8_t *content, off_t length) +{ + bool result; /* Bilan à faire connaître */ + + result = false; + if (length >= 4) + result = (strncmp((const char *)content, "\x7f\x45\x4c\x46" /* .ELF */, 4) == 0); + + return result; + +} /****************************************************************************** diff --git a/src/format/elf/e_elf.h b/src/format/elf/e_elf.h index b11fb24..fffeff2 100644 --- a/src/format/elf/e_elf.h +++ b/src/format/elf/e_elf.h @@ -38,6 +38,8 @@ typedef struct _elf_format elf_format; +/* Indique si le format peut être pris en charge ici. */ +bool elf_is_matching(const uint8_t *, off_t); /* Prend en charge un nouvel ELF. */ elf_format *load_elf(const uint8_t *, off_t); |