История изменений
Исправление 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 не приписан объект.
Где будет храниться этот стек регионов, кто мешает атакующему и туда накакать?
В начале стека.