diff options
Diffstat (limited to 'plugins/elf')
| -rw-r--r-- | plugins/elf/loading.c | 22 | 
1 files changed, 15 insertions, 7 deletions
| diff --git a/plugins/elf/loading.c b/plugins/elf/loading.c index bf79f13..181c864 100644 --- a/plugins/elf/loading.c +++ b/plugins/elf/loading.c @@ -720,7 +720,6 @@ GBinSymbol *g_elf_loading_build_plt_symbol(const GElfLoading *loading, uint64_t      const GBinContent *content;             /* Contenu binaire à lire      */      const char *raw_label;                  /* Première partie de nom      */      GBinRoutine *routine;                   /* Routine à mettre en place   */ -    char *new_label;                        /* Nouvelle étiquette          */      format = loading->format; @@ -751,12 +750,21 @@ GBinSymbol *g_elf_loading_build_plt_symbol(const GElfLoading *loading, uint64_t          {              routine = g_binary_format_decode_routine(base, raw_label); -            raw_label = g_binary_routine_get_name(routine); - -            new_label = strdup(raw_label); -            new_label = stradd(new_label, "@plt"); - -            g_binary_routine_set_name(routine, new_label); +            /** +             * L'ajout d'un suffixe "@plt" artificiel est ici supprimé. +             * +             * Si un tel ajout est facile sur des fonctions C classiques +             * (via un appel à g_binary_routine_get_name(), une modification du résultat +             * obtenu puis une mise à jour avec g_binary_routine_set_name()) le traitement +             * des fonctions C++ s'avère plus laborieux. +             * +             * Par exemple, cerner le nom d'une fonction comportant des patrons requiert +             * des opérations pour la mise à jour de ce nom ; et charge à l'utilisateur +             * de procéder à un traitement tout aussi complexe s'il souhaite retrouver +             * le nom d'origine, sans facilité apportée par Chrysalide. +             * +             * On garde en référence à ce titre la fonction _ZN6google8protobuf8internal20RepeatedPtrFieldBase5ClearINS0_16RepeatedPtrFieldIN8pittpatt5proto14DetectedObjectEE11TypeHandlerEEEvv. +             */              result = G_BIN_SYMBOL(routine); | 
