#buffer-overflow
#переполнение буфера
Вопрос:
Мне сказали, что инструкция «jmp short 0x0», которая преобразуется в объектный код ‘xeb xfe’, вызывает бесконечный цикл процесса. Как именно это работает?
Комментарии:
1. Я бы предположил, что
0x0
здесь относительное смещение 0 по отношению к программному счетчику. Однако в некоторых наборах команд (например, 68k) смещение находится где-то в середине инструкции, а не в начале, что означает, что вам придется перейти к смещению -2 или аналогичному, чтобы получить бесконечный цикл.
Ответ №1:
Команда вызовет возврат к самой себе. xebxfe
буквально переводится как «Прыжок вперед на 2 байта от начала следующей инструкции». Поскольку эта инструкция сама по себе имеет длину 2 байта, местом назначения перехода будет сама инструкция перехода.