2016-11-27 12 views
0

У меня есть разделенный двоичный код для анализа. Какой-то интересный код находится по адресу 0x1234, как мне найти все переходы на этот адрес? (конечно, я не ожидаю найти вычисленные прыжки на этот адрес, только те, которые жестко закодированы). Я не могу использовать простой поиск, так как команда прыжков обычно кодируется с относительным смещением, и есть много видов переходов (je, jne, jmp ...). Я сейчас работаю с GDB-PEDA на x86_64/linux, если это должен быть подход, основанный на платформе.Как найти подсказки на конкретный адрес

+1

Я думаю, что вы должны выполнить программу, чтобы собрать эту информацию. Может быть, полезен процесс записи gdb. Включена запись (запись btrace). Поместите точку останова в 0x1234. Затем, когда точка останова ударяется, используйте историю записей, чтобы узнать, как вы (и откуда) вы прыгнули туда. – dbrank0

+0

BTW: Я неправильно понял вопрос. Это необходимо, только если вы хотите найти вычисленные прыжки. – dbrank0

ответ

2

Как найти все переходы по этому адресу?

Попробуйте objdump -d a.out | egrep 'j.* 0x1234'