короткое замыкание jmp 0x0, вызывающее цикл навсегда

#buffer-overflow

#переполнение буфера

Вопрос:

Мне сказали, что инструкция «jmp short 0x0», которая преобразуется в объектный код ‘xeb xfe’, вызывает бесконечный цикл процесса. Как именно это работает?

Комментарии:

1. Я бы предположил, что 0x0 здесь относительное смещение 0 по отношению к программному счетчику. Однако в некоторых наборах команд (например, 68k) смещение находится где-то в середине инструкции, а не в начале, что означает, что вам придется перейти к смещению -2 или аналогичному, чтобы получить бесконечный цикл.

Ответ №1:

Команда вызовет возврат к самой себе. xebxfe буквально переводится как «Прыжок вперед на 2 байта от начала следующей инструкции». Поскольку эта инструкция сама по себе имеет длину 2 байта, местом назначения перехода будет сама инструкция перехода.