Я прочитал две статьи о распылении кучи: Wikiepdia и это сообщение в блоге . Я понимаю, как код оболочки вводится в память программы. Но как заставить программу переходить / обращаться к адресной памяти, расположенной в куче?
Какой сбой вызывает обращение к куче?
Нужно ли проводить такую атаку с помощью атаки переполнения буфера?
Есть ли какое-нибудь золотое правило, подобное правилу с переполнением буфера, то есть использовать версию n функций ( strncpy
вместо strcpy
)?