« 12.5 Informations sur les binaires Elf » : différence entre les versions
Aller à la navigation
Aller à la recherche
m (Futex a déplacé la page 10.5 Informations sur les binaires Elf vers 12.5 Informations sur les binaires Elf) |
(Aucune différence)
|
Dernière version du 19 juin 2013 à 14:22
# readelf -a /bin/ls | more ELF Header: Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 Class: ELF64 Data: 2's complement, little endian Version: 1 (current) OS/ABI: UNIX - System V ABI Version: 0 Type: EXEC (Executable file) Machine: Advanced Micro Devices X86-64 Version: 0x1 Entry point address: 0x4046d4 Start of program headers: 64 (bytes into file) Start of section headers: 108648 (bytes into file) Flags: 0x0 Size of this header: 64 (bytes) Size of program headers: 56 (bytes) Number of program headers: 8 Size of section headers: 64 (bytes) Number of section headers: 28 Section header string table index: 27 ...
Les sections importantes
.ctors et .dtors Adresses mémoires des fonctions devant être appelés au début et fin de programme (propre à gcc). .text Code exécutable. .data Variables globales. .got Chaque entrée de cette section contient l'adresse absolue des différentes fonctions dynamique ou non. .plt La fonction qui aura été appelée dans le programme sera référencée dans cette section. Chaque entrée permettra entre autre de jumper sur l'adresse de .got contenant l'adresse absolue de la fonction appelée.
Afficher les symboles d'un binaire
# nm sysinfo 08049868 d _DYNAMIC 0804993c d _GLOBAL_OFFSET_TABLE_ 080486ec R _IO_stdin_used w _Jv_RegisterClasses 08049858 d __CTOR_END__ 08049854 d __CTOR_LIST__ 08049860 D __DTOR_END__ 0804996c D __dso_handle w __gmon_start__ 0804869a T __i686.get_pc_thunk.bx