objdump, отображение без смещений - PullRequest
3 голосов
/ 17 декабря 2011

При выводе исполняемого файла я хочу, чтобы выводился только сегмент кода. Не смещения, а бинарная форма кодов. Могу заметить, получаю это от человека objdump. Есть ли способ?

Ответы [ 2 ]

4 голосов
/ 24 января 2012

Вы можете подавить дамп шестнадцатеричного кода объекта с помощью

--no-show-raw-insn

Если у вас есть переходы в коде, тогда вам нужны смещения, чтобы разобраться в них, но если вы действительно хотите удалить их, отфильтруйте код примерно так:

objdump -d --no-show-raw-insn myfile.o | perl -p -e 's/^\s+(\S+):\t//;'

Пример вывода:

0000000000000000 <foo>:
retq
lea    0x0(%rsi),%rsi
lea    0x0(%rdi),%rdi
Disassembly of section .gnu.linkonce.t.goo:

0000000000000000 <goo>:
retq
lea    0x0(%rsi),%rsi
lea    0x0(%rdi),%rdi
0 голосов
/ 01 июля 2018

Если вы хотите получить тот же вывод, что и Peeter Joot , но без использования командной строки Perl Тогда вы можете использовать инструмент Grep и Cut , как показано ниже.

objdump -d --no-show-raw-insn my_binary_file.o | grep "^ " | cut -f2,3
...