LINUX.ORG.RU

История изменений

Исправление MOPKOBKA, (текущая версия) :

Да.

Нет.

Более того, там будет проблема с тем, что нужно вызвать функцию по указателю, но неизвестно, «старая» это функция или «новая»

Таких проблем не будет. Если в стеке нет значений под переменные, значит их нету, если есть, то функции которую вызывают не обязательно их использовать, зачем ей знать что где то есть такой кусок памяти.

А как это защитит от ((int*)rbp)[-3] = 0xBADC0DE;, если ((int*)rbp)-3 это валидный адрес

Это не будет валидным адресом, rbp не приписан объект.

Где будет храниться этот стек регионов, кто мешает атакующему и туда накакать?

В начале стека. Не сможет он туда попасть, потому что стек защищен.

Исправление MOPKOBKA, :

Да.

Нет.

Более того, там будет проблема с тем, что нужно вызвать функцию по указателю, но неизвестно, «старая» это функция или «новая»

Таких проблем не будет.

А как это защитит от ((int*)rbp)[-3] = 0xBADC0DE;, если ((int*)rbp)-3 это валидный адрес

Это не будет валидным адресом, rbp не приписан объект.

Где будет храниться этот стек регионов, кто мешает атакующему и туда накакать?

В начале стека. Не сможет он туда попасть, потому что стек защищен.

Исходная версия MOPKOBKA, :

Да.

Нет.

Более того, там будет проблема с тем, что нужно вызвать функцию по указателю, но неизвестно, «старая» это функция или «новая»

Таких проблем не будет.

А как это защитит от ((int*)rbp)[-3] = 0xBADC0DE;, если ((int*)rbp)-3 это валидный адрес

Это не будет валидным адресом, rbp не приписан объект.

Где будет храниться этот стек регионов, кто мешает атакующему и туда накакать?

В начале стека.