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