summaryrefslogtreecommitdiff
path: root/plugins/elf/loading.h
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2020-02-15 13:22:10 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2020-02-15 13:22:10 (GMT)
commit04b1ee00d25383f977f59703e4c0bc66ad1faa81 (patch)
treea2c30ff10b9720f5377d230a4a23bd85aa3dcdc6 /plugins/elf/loading.h
parentcf0d30509224a887ecb9bf371a76eb070d3f2eb3 (diff)
Identified Elf imported symbols without waiting for the end of disassembling.
Diffstat (limited to 'plugins/elf/loading.h')
-rw-r--r--plugins/elf/loading.h11
1 files changed, 7 insertions, 4 deletions
diff --git a/plugins/elf/loading.h b/plugins/elf/loading.h
index 8fb4ce9..e3016d4 100644
--- a/plugins/elf/loading.h
+++ b/plugins/elf/loading.h
@@ -52,7 +52,7 @@ typedef struct _GElfLoadingClass GElfLoadingClass;
typedef bool (* elf_loading_cb) (GElfLoading *, GElfFormat *, phys_t *);
/* Assure l'intégration d'un symbole issu des relocalisations. */
-typedef bool (* elf_applying_cb) (GElfLoading *, GElfFormat *, virt_t *, GBinSymbol *);
+typedef GBinSymbol * (* elf_importing_cb) (GElfLoading *, GElfFormat *, vmpa2t *);
/* Indique le type défini pour les tâches de chargements pour format ELF. */
@@ -65,7 +65,7 @@ GElfLoading *g_elf_loading_new_for_symbols(GElfFormat *, phys_t, phys_t, phys_t,
GElfLoading *g_elf_loading_new_for_relocations(GElfFormat *, phys_t, phys_t, elf_rel *, activity_id_t, elf_loading_cb);
/* Crée une tâche de chargement pour ELF différée. */
-GElfLoading *g_elf_loading_new_for_applying(GElfFormat *, sym_iter_t *, phys_t, elf_rel *, size_t, phys_t, uint32_t, activity_id_t, elf_applying_cb);
+GElfLoading *g_elf_loading_new_for_imported(GElfFormat *, const vmpa2t *, phys_t, elf_rel *, size_t, phys_t, uint32_t, activity_id_t, elf_importing_cb);
/* Crée une tâche de chargement de chaînes pour ELF différée. */
GElfLoading *g_elf_loading_new_for_strings(GElfFormat *, phys_t, phys_t, phys_t, phys_t, virt_t, activity_id_t, elf_loading_cb);
@@ -82,8 +82,11 @@ void g_elf_loading_store_relocation(const GElfLoading *, const phys_t *, const e
/* Recherche une relocalisation par son décalage. */
bool g_elf_loading_search_for_relocation(const GElfLoading *, const uint64_t *, elf_rel **);
-/* Construit la désignation adaptée à un symbole importé. */
-char *g_elf_loading_build_plt_name(const GElfLoading *, uint64_t);
+/* Construit le symbole adapté à un symbole importé. */
+GBinSymbol *g_elf_loading_build_plt_symbol(const GElfLoading *, uint64_t);
+
+/* Fournit la liste de symboles importés constituée. */
+GBinSymbol **g_elf_loading_get_imported_symbols(const GElfLoading *, size_t *);
/* Donne les informations utiles à la recherche de chaînes. */
const bin_t *g_elf_loading_get_info_for_strings(const GElfLoading *, GBinContent **, phys_t *, phys_t *, phys_t *);