Cuando compilamos el código fuente, se genera un archivo de objeto del programa y, con la ayuda del enlazador, este archivo de objeto se convierte en un archivo binario que solo la máquina puede entender. Este tipo de archivo sigue algunas estructuras, una de las cuales es ELF (formato ejecutable y enlazable). Y para obtener la información de estos archivos ELF se utiliza el comando readelf .
Trabajar con comandos readelf y archivos ELF
1. Para mostrar la ayuda del comando readelf.
$readelf
This displays the help section of the command containing all its parameters and their uses. 2. To check whether a file is ELF file.
$file elf_file
If it prints ELF in the output then the file is an ELF file. Note: In our case, file name is elf_file. 3. To generate a elf file using gcc compiler.
$gcc filename.c -o elf_file
The above command will generate an executable elffile. Note: In our case, the name of file is filename.c and the name of elf file is elf_file. 4. To display file headers of a elf file.
$readelf -h elf_file
This will display the top-level headers of the elf file. Note: In our case, the name of elf file is elf_file. 5. To display information about the different sections of the process’ address space.
$readelf -S elf_file
This will display the different sections of the process’ address space. Note: In our case, the name of elf file is elf_file. 6. To display symbols table.
$readelf -s elf_file
This will display the symbols table of the file. Note: In our case, the name of elf file is elf_file. 7. To display core notes.
$readelf -n elf_files
This will display the core notes related to the file. Note: In our case, the name of elf file is elf_file. 8. To display relocation section.
$readelf -r elf_file
This will display the relocks(if present). Note: In our case, the name of elf file is elf_file. 9. To display the dynamic section.
$readelf -d elf_file
This will display the dynamic section of the file. Note: In our case, the name of elf file is elf_file. 10. To get the version of the readelf command.
$readelf -v
This will display the version information of the readelf command.