objdump - это программа командной строки для отображения различной информации об объектных файлах в Unix-подобных операционных системах . Например, его можно использовать как дизассемблер для просмотра исполняемого файла в виде сборки. Это часть GNU Binutils для детального контроля над исполняемыми файлами и другими двоичными данными. objdump использует библиотеку BFD для чтения содержимого объектных файлов. Аналогичные утилиты - это Borland TDUMP , Microsoft DUMPBIN и readelf .
Операционная система | Unix и Unix-подобные |
---|---|
Тип | Командование |
Лицензия | GNU GPL |
Обратите внимание, что на некоторых платформах (например, macOS ) двоичный файл objdump может фактически быть ссылкой на objdump llvm с различными параметрами командной строки и поведением.
Пример
Например,
$ objdump -D -M intel file.bin | grep main .: -A20
При этом выполняется дизассемблирование файла «file.bin» с ассемблерным кодом, показанным в синтаксисе Intel . Затем мы перенаправляем его на grep , который ищет основную функцию и отображает 20 строк ее кода.
Пример вывода:
4004ed: 55 толчка РБП 4004ee: 48 89 e5 мы РСП , РСП 4004f1: c7 45 ок 00 00 00 00 мов DWORD PTR [ РСП - 0x14 ], 0x0 4004f8: c7 45 f0 01 00 00 00 мы DWORD PTR [ РСП - 0x10 ] , 0x1 4004ff: c7 45 f4 02 00 00 00 мов DWORD PTR [ РСП - 0xc ], 0x2 400506: c7 45 f8 03 00 00 00 мов DWORD PTR [ РСП - 0x8 ], 0x3 40050d: c7 45 FC 04 00 00 00 мов DWORD PTR [ RBP - 0x4 ], 0x4 400514: с7 45 ес 00 00 00 00 мов типа DWORD PTR [ RBP - 0x14 ], 0x0 40051b: ЕВ 13 JMP 400530 < Основной + 0x43 > 40051d: 8b 05 15 0b 20 00 мов EAX , DWORD PTR [ rip + 0x200b15 ] # 601038 < globalA > 400523: 83 e8 01 sub eax , 0x1 400526: 89 05 0c 0b 20 00 mov DWORD PTR [ rip + 0x200b0c ], eax # 601038 < globalA > 40052c: 83 45 ec 01 добавить DWORD PTR [ РСП - 0x14 ], 0x1 400530: 8b 05 02 0B 20 00 мов EAX , DWORD PTR [ рип + 0x200b02 ] # 601038 < globalA > 400536: 39 45 ес CMP DWORD PTR [ РСП - 0x14 ], EAX 400539: 7c е2 JL 40051 д < Основной + 0x30 > 40053b: 5d поп RBP 40053c: с3 RET 40053d: 0f 1f 00 NOP типа DWORD PTR [ Rax ]
Смотрите также
Внешние ссылки
- пользователя Linux - Руководство по командам
- пользователя Linux - Руководство по командам
- Binutils :: Objdump - Perl- интерфейс для objdump