diff options
Diffstat (limited to 'src/format/elf/dynamic.c')
-rw-r--r-- | src/format/elf/dynamic.c | 109 |
1 files changed, 0 insertions, 109 deletions
diff --git a/src/format/elf/dynamic.c b/src/format/elf/dynamic.c deleted file mode 100644 index 782167c..0000000 --- a/src/format/elf/dynamic.c +++ /dev/null @@ -1,109 +0,0 @@ - -/* Chrysalide - Outil d'analyse de fichiers binaires - * program.c - gestion des en-têtes de programme d'un ELF - * - * Copyright (C) 2015-2017 Cyrille Bagard - * - * This file is part of Chrysalide. - * - * Chrysalide is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * Chrysalide is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Foobar. If not, see <http://www.gnu.org/licenses/>. - */ - - -#include "dynamic.h" - - -#include "elf-int.h" -#include "program.h" - - - -/****************************************************************************** -* * -* Paramètres : format = description de l'exécutable à consulter. * -* index = indice de la section recherchée. * -* dynamic = ensemble d'informations à faire remonter. [OUT] * -* * -* Description : Recherche un en-tête de programme DYNAMIC au sein de binaire.* -* * -* Retour : Bilan de l'opération. * -* * -* Remarques : - * -* * -******************************************************************************/ - -bool find_elf_dynamic_program_header(const GElfFormat *format, elf_phdr *dynamic) -{ - bool result; /* Bilan d'opération à renvoyer*/ - uint16_t max; /* Nombre d'en-têtes présents */ - uint16_t i; /* Boucle de parcours */ - - result = false; - - max = ELF_HDR(format, format->header, e_phnum); - - for (i = 0; i < max && !result; i++) - { - if (!find_elf_program_by_index(format, i, dynamic)) - break; - - result = (ELF_PHDR(format, *dynamic, p_type) == PT_DYNAMIC); - - } - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : format = informations chargées à consulter. * -* dynamic = programme de type PT_DYNAMIC. * -* type = sorte d'élément recherché. * -* item = élément retrouvé dans la section. [OUT] * -* * -* Description : Retrouve un élément donné dans la section dynamique. * -* * -* Retour : Bilan de l'opération. * -* * -* Remarques : - * -* * -******************************************************************************/ - -bool find_elf_dynamic_item_from_pheader(const GElfFormat *format, const elf_phdr *dynamic, int64_t type, elf_dyn *item) -{ - bool result; /* Bilan à retourner */ - off_t max; /* Nombre d'entités présentes */ - off_t i; /* Boucle de parcours */ - phys_t pos; /* Position de lecture */ - - result = false; - - max = ELF_PHDR(format, *dynamic, p_filesz) / ELF_SIZEOF_DYN(format); - - for (i = 0; i < max && !result; i++) - { - pos = ELF_PHDR(format, *dynamic, p_offset) + i * ELF_SIZEOF_DYN(format); - - if (!read_elf_dynamic_entry(format, pos, item)) - break; - - result = (ELF_DYN(format, *item, d_tag) == type); - - } - - return result; - -} |