сборка JMP на линию, которая не существует - PullRequest
0 голосов
/ 14 ноября 2018

Assembly code showing JMPQ

Для строки, которая говорит "jmpq * 0x400850", на самом деле такая строка не имеет 0x400850. В этом случае, поскольку я не могу перейти к тому месту, о котором она упоминается, могу ли я просто пропустить эту команду и перейти к команде, которая находится в строке ниже?

Так что ответы сказали мне набрать «objdump» в терминале, поэтому я набрал

    objdump -d ./bin-lab-ref > output.txt

и я не получил вывод в терминале. Что мне делать в этой ситуации?

1 Ответ

0 голосов
/ 14 ноября 2018

Инструкция jmpq *0x400850(,%rax,8) переходит к значению, хранящемуся по адресу 0x400850(,%rax,8), а не к самому адресу 0x400850(,%rax,8).Скорее всего, по этому адресу есть таблица переходов, и rax выбирает запись из таблицы переходов для перехода к ней.

Осмотрите память около 0x400850, чтобы узнать, какие записи есть в таблице переходов и, следовательно, гдепрыжок идет.Вы можете получить дамп образа исполняемого файла, используя objdump -s.

...