команда readelf в Linux с примерами
Когда мы компилируем исходный код, программа генерирует объектный файл, и с помощью компоновщика эти объектные файлы преобразуются в двоичный файл, который может понять только машина. Этот тип файлов следует за некоторыми структурами, одной из которых является ELF (исполняемый и связываемый формат). И для получения информации об этих файлах ELF используется команда readelf.
Работа с командой readelf и файлами ELF
1. Вывести справку по команде readelf.
$ readelf
Это отображает раздел справки команды, содержащий все ее параметры и способы их использования.
2. Проверить, является ли файл файлом ELF.
$file elf_file
Если на выходе он печатает ELF, то это файл ELF.
Примечание: в нашем случае имя файла - elf_file.
3. Сгенерировать файл elf с помощью компилятора gcc.
$ gcc имя_файла.c -o elf_file
Приведенная выше команда сгенерирует исполняемый файл elffile.
Примечание. В нашем случае имя файла - filename.c, а имя файла elf - elf_file.
4. Отображать заголовки файлов эльфийского файла.
$readelf -h elf_file
Это отобразит заголовки верхнего уровня файла elf.
Примечание: в нашем случае имя файла elf - elf_file.
5. Для отображения информации о различных разделах адресного пространства процесса.
$ readelf -S elf_file
Это отобразит различные разделы адресного пространства процесса.
Примечание: в нашем случае имя файла elf - elf_file.
6. Вывести на экран таблицу символов.
$ readelf -s elf_file
Это отобразит таблицу символов файла.
Примечание: в нашем случае имя файла elf - elf_file.
7. Для отображения основных заметок.
$ readelf -n elf_files
Это отобразит основные примечания, относящиеся к файлу.
Примечание: в нашем случае имя файла elf - elf_file.
8. Показать раздел перемещения.
$ readelf -r elf_file
Это отобразит повторные блокировки (если они есть).
Примечание: в нашем случае имя файла elf - elf_file.
9. Чтобы отобразить динамический раздел.
$ readelf -d elf_file
Это отобразит динамический раздел файла.
Примечание: в нашем случае имя файла elf - elf_file.
10. Получить версию команды readelf.
$ readelf -v
Это отобразит информацию о версии команды readelf.