objdump
https://www.sanfoundry.com/objdump-command-usage-examples-in-linux/
objdump - отображение информации из объектных файлов.
Описание :
objdump отображает информацию об одном или нескольких объектных файлах. Параметры определяют, какую конкретную информацию отображать. Эта информация в основном полезна для программистов, которые работают над инструментами компиляции, в отличие от программистов, которые просто хотят, чтобы их программа компилировалась и работала.
По меньшей мере один из вариантов -a, -d, -D, -f, -g, -G, -h, -H, -p, -r, -S, -t, -T, -V или - x должен быть дан, чтобы сообщить objdump, какую информацию следует показывать.
Применение :
objdump [опции] objfiles
Опции :
-a, –archive-header
Если какие-либо входные файлы являются архивами, отобразите информацию заголовка архива. Вывод включает в себя формат объектного файла для каждого члена архива.
–adjust-vma=offset
Добавьте смещение ко всем заголовкам разделов перед отправкой информации. Полезно, если адреса разделов не соответствуют таблице символов.
-b bfdname, –target=bfdname
Задайте формат двоичного файла, используя имя двоичного файла, bfdname. Используйте опцию -h для списка поддерживаемых форматов для вашей системы.
-C [style], –demangle[=style] Декодировать (demangle) имена символов низкого уровня в именах пользовательского уровня, необязательно указывая стиль искажения. Удаляет все начальные символы подчеркивания и делает имена функций C ++ доступными для чтения.
-d, –disassemble
Отобразите мнемосхемы имен ассемблера для машинных инструкций. Разберите только те разделы, которые должны содержать инструкции.
-D, –disassemble-all
Разберите все разделы, а не только те, которые, как ожидается, содержат инструкции.
-EB, –endian=big
-EL, –endian=little
Укажите, являются ли объектные файлы большими или маленькими, для разборки. Полезно для разборки таких форматов, как S-записи (печатные версии объектных файлов ASCII), которые не включают эту информацию.
-f, –file-header
Отображение итоговой информации общего заголовка.
–file-start-context
При использовании -S и отображении исходного кода из файла, который еще не был отображен, включите контекст из начала файла.
-g, –debugging
Отображать отладочную информацию.
-G, –stabs
Отображать информацию о любых записях (отладочную таблицу символов) в дополнение к содержимому любых запрошенных разделов.
-h, –section-header, –header
Отображение итоговой информации заголовка секции.
-H, –help
Отобразить справочную информацию и выйти.
-i, –info
Отображение архитектур и форматов объектов, доступных в вашей системе, для использования с -b или -m.
-j name, –section=name
Отображать информацию для названия раздела.
-l, –line-numbers
Обозначьте отображение номерами файлов и номеров исходного кода, соответствующими отображаемому объекту или перемещению. Используйте с -d, -D или -r.
-m arch, –architecture=arch
Укажите архитектуру для дизассемблирования объектных файлов. Полезно при дизассемблировании файлов, таких как S-записи, которые не содержат эту информацию.
-M options, –disassembler-options=options
Передача целевой информации в дизассемблер. Поддерживается только по некоторым целям.
–no-show-raw-insn
Не демонтируйте инструкции в шестнадцатеричном формате при разборке. По умолчанию используется -prefix-addresses.
-p, –private-headers
Отображать информацию, относящуюся к формату объекта. Для некоторых форматов дополнительная информация не отображается.
–prefix-addresses
При разборке распечатайте полный адрес в каждой строке.
-r, –reloc
Отображение записей перемещения. С -b или -D записи смешиваются с разборкой.
-R, –dynamic-reloc
Распечатайте записи динамического перемещения. Имеет смысл только для динамических объектов, таких как определенные типы разделяемых библиотек.
-s, –full-contents
Отображение полного содержимого любых запрошенных разделов.
-S, –source
Показывать исходный код, смешанный с разборкой, если это возможно. Подразумевает -d.
–show-raw-insn
При разборке, покажите инструкции в шестнадцатеричной, а также символической форме. Это значение по умолчанию, кроме как -prefix-адресов.
–start-address=addr
Начните отображение данных по указанному адресу. Применяется к -d, -r и -s.
–stop-address=addr
Остановить отображение данных по указанному адресу. Применяется к -d, -r и -s.
-t, –syms
Записывать таблицы таблиц.
-T, –dynamic-syms
Распечатайте записи таблицы динамических символов. Имеет смысл только для динамических объектов, таких как определенные типы разделяемых библиотек.
-V, –version
Распечатайте информацию о версии и выйдите из нее.
-w, –wide
Форматируйте строки для устройств вывода более 80 символов и не обрезайте имена таблиц символов.
-x, –all-headers
Отобразить всю доступную информацию заголовка. Эквивалентно заданию -a -f -h -r -t.
-z, –disassemble-zeroes
Разберите блоки нулей. По умолчанию пропускаются такие блоки.
Примеры :
Код, используемый для объектных файлов во всех примерах: