Вопросы к Поиску с Алисой
Технология стекового кадра способствует уязвимости переполнения буфера, так как большинство языков высокого уровня использует размещение данных в стеке процесса, смешивая данные программы с управляющими данными, в том числе адресами начала стекового кадра и возврата из исполняемой функции. ru.ruwiki.ru ru.wikipedia.org
Переполнение буфера возникает, когда компьютерная программа записывает данные за пределами выделенного в памяти буфера. ru.ruwiki.ru В результате переполнения могут быть испорчены данные, расположенные следом за буфером (или перед ним). ru.ruwiki.ru
Если буфер расположен в стеке и стек «растёт вниз» (например, в архитектуре x86), то с помощью переполнения буфера можно изменить адрес возврата выполняемой функции, так как адрес возврата расположен после буфера, выделенного выполняемой функцией. ru.ruwiki.ru ru.wikipedia.org Тем самым появляется возможность выполнить произвольный участок машинного кода в адресном пространстве процесса. ru.ruwiki.ru ru.wikipedia.org
Использовать переполнение буфера для искажения адреса возврата возможно, даже если стек «растёт вверх» (в этом случае адрес возврата обычно находится перед буфером). ru.ruwiki.ru ru.wikipedia.org
Для смягчения последствий переполнения буфера используют защиту пространства исполняемого кода, которая делает большинство действий злоумышленников невозможными. ru.ruwiki.ru ru.wikipedia.org