readelf is a command-line utility that is used to display information about ELF (Executable and Linkable Format) files. ELF is a standard file format used on many Unix-like operating systems, including Linux, for executable files, shared libraries, and object files.
readelf can be used to display a wide range of information about ELF files, including header information, program headers, section headers, symbol tables, dynamic sections, and relocation tables. This information can be useful for understanding the structure and contents of ELF files, as well as for debugging and troubleshooting.
Some of the common options that can be used with readelf include -h to display the ELF header information, -S to display the section headers, -s to display the symbol table, -r to display the relocation table, and -d to display the dynamic section.
readelf can also be used to extract specific pieces of information from an ELF file, such as the entry point address or the size of a particular section. This can be done using the -W option followed by a format string.
If you encounter the below error while running the command readelf:
readelf: command not found
you may try installing the below package as per your choice of distribution:
|Debian||apt-get install binutils-multiarch|
|Ubuntu||apt-get install binutils-2.26|
|Alpine||apk add binutils|
|Arch Linux||pacman -S aarch64-linux-gnu-binutils|
|Kali Linux||apt-get install binutils-mipsisa32r6el-linux-gnu|
|CentOS||yum install binutils|
|Fedora||dnf install binutils-arc-linux-gnu|
|OS X||brew install binutils|
|Raspbian||apt-get install binutils-multiarch|
readpe Command Examples
1. Display all information about the ELF file:
# readelf -all path/to/binary
2. Display all the headers present in the ELF file:
# readelf --headers path/to/binary
3. Display the entries in symbol table section of the ELF file, if it has one:
# readelf --symbols path/to/binary
4. Display the information contained in the ELF header at the start of the file:
# readelf --file-header path/to/binary
In addition to displaying information about ELF files, readelf can also be used to modify certain aspects of ELF files, such as the entry point address or the section attributes. However, this functionality should be used with caution, as it can potentially corrupt the file.
Overall, readelf is a powerful tool for analyzing and debugging ELF files on Linux and other Unix-like systems, and it can provide valuable insights into the structure and contents of these files.