12.5 Informations sur les binaires Elf
(Redirigé depuis 10.5 Informations sur les binaires Elf)
Aller à la navigation
Aller à la recherche
# 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