Переполнение буфера
От: Буравчик Россия  
Дата: 14.05.19 05:37
Оценка:
Если я правильно понимаю, при переполнении буфера слишком длинные данные затирают в стеке адреса возврата. Это позволяет подставить и выполнить свой код.

Но почему-бы не разделить стек? Сделать отдельный стек для данных и отдельный стек для адресов возврата.

Простейший способ — организовать где-то в памяти стек и использовать его для хранения локальных переменных и параметров процедур. А адрес возврата хранить в "обычном" стеке.

Это же вроде компилятор решает, где и как хранить данные? Есть такая настройка?
Best regards, Буравчик
Отредактировано 14.05.2019 5:39 Буравчик . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.