summaryrefslogtreecommitdiff
path: root/src/format/elf/section.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/format/elf/section.h')
-rw-r--r--src/format/elf/section.h40
1 files changed, 12 insertions, 28 deletions
diff --git a/src/format/elf/section.h b/src/format/elf/section.h
index 6bc3a75..944fd7c 100644
--- a/src/format/elf/section.h
+++ b/src/format/elf/section.h
@@ -25,47 +25,31 @@
#define _FORMAT_ELF_SECTION_H
-#include <elf.h>
+#include "elf.h"
+#include "elf_def.h"
-#include "e_elf.h"
-
-/* En-tête de section ELF */
-typedef union _Elf_Shdr
-{
- Elf32_Shdr section32; /* Version 32 bits */
- Elf64_Shdr section64; /* Version 64 bits */
-
-} Elf_Shdr;
-
-
-#define ELF_SIZEOF_SHDR(fmt) (fmt->is_32b ? sizeof(Elf32_Shdr) : sizeof(Elf64_Shdr))
-
-#define ELF_SHDR(fmt, shdr, fld) (fmt->is_32b ? (shdr)->section32.fld : (shdr)->section64.fld)
-
-
-
-/* Charge en mémoire la liste humaine des sections. */
-bool read_elf_section_names(elf_format *);
+/* Recherche une section donnée au sein de binaire par indice. */
+bool find_elf_section_by_index(const GElfFormat *, uint16_t, elf_shdr *);
/* Recherche une section donnée au sein de binaire par nom. */
-bool find_elf_section_by_name(const elf_format *, const char *, Elf_Shdr *);
+bool find_elf_section_by_name(const GElfFormat *, const char *, elf_shdr *);
/* Recherche une section donnée au sein de binaire par type. */
-bool find_elf_section_by_type(const elf_format *, uint16_t, Elf_Shdr **, size_t *);
+bool find_elf_section_by_virtual_address(const GElfFormat *, uint32_t, elf_shdr *);
-/* Recherche une section donnée au sein de binaire par indice. */
-bool find_elf_section_by_index(const elf_format *, uint16_t, Elf_Shdr *);
+/* Recherche une section donnée au sein de binaire par type. */
+bool find_elf_sections_by_type(const GElfFormat *, uint32_t, elf_shdr **, size_t *);
/* Fournit les adresses et taille contenues dans une section. */
-void get_elf_section_content(const elf_format *, const Elf_Shdr *, off_t *, off_t *, uint64_t *);
+void get_elf_section_content(const GElfFormat *, const elf_shdr *, off_t *, off_t *, vmpa_t *);
/* Recherche une zone donnée au sein de binaire par nom. */
-bool find_elf_section_content_by_name(const elf_format *, const char *, off_t *, off_t *, uint64_t *);
+bool find_elf_section_content_by_name(const GElfFormat *, const char *, off_t *, off_t *, vmpa_t *);
-/* Recherche une zone donnée au sein de binaire par indice. */
-bool find_elf_section_content_by_index(const elf_format *, uint16_t, off_t *, off_t *, uint64_t *);
+/* Identifie une chaîne de caractères dans une section adéquate. */
+const char *extract_name_from_elf_string_section(const GElfFormat *, const elf_shdr *, uint16_t);