ft_nm
Description
ft_nm est une réimplémentation en C de la commande Unix nm, qui liste les symboles contenus dans un fichier objet, une bibliothèque ou un exécutable. Reproduire son comportement impose de parser à la main le format binaire ELF (Executable and Linkable Format).
Ce que ça implique
- Lecture de l'en-tête ELF — identification de l'architecture (32/64 bits), de l'ordre des octets (endianness) et de la localisation des tables.
- Parcours des sections et des segments — repérage des tables de symboles (
.symtab) et de chaînes (.strtab). - Classification des symboles — reproduction exacte des lettres de type de
nm(T, t, D, U, W…) selon la section, la liaison et la visibilité de chaque symbole. - Gestion robuste des fichiers malformés — un binaire tronqué ou corrompu ne doit jamais provoquer de crash.
Ce que j'ai appris
Manipuler le format ELF directement, c'est comprendre comment un exécutable est réellement structuré une fois compilé. C'est un socle indispensable pour le reverse engineering et l'analyse de malware : avant de désassembler un binaire, il faut savoir lire son squelette.