Направление стека и переполнение буфера - PullRequest
1 голос
/ 04 июня 2011

В чем смысл растущего стека, в чем смысл записывать переменные стека в восходящем направлении? Например, если у меня есть char buf [200], скажем, по адресу памяти 0x400. Когда я пишу в этот массив, я буду писать от 0x400 до 0x600, что относится к предыдущим кадрам стека. Это делает программу уязвимой для переполнений буфера, которые могут контролировать программу, перезаписывая указатели возврата и т. Д. Так почему бы просто не записать массив от 0x600 до 0x400?

1 Ответ

2 голосов
/ 04 июня 2011

Это не имеет значения;когда вы пытаетесь записать больше 200 байтов, вы все еще пытаетесь записать адрес, который не принадлежит массиву (вне границ), следовательно, переполнение буфера.

...