Продолжая тему, порекомендую [
1] разделы A.1 и C.1 (приложения). Кроме того, и в основном тексте книги упоминается (и доказывается на практике), что эксплуатировать дыры в безопасности ОС, можно приёмами 20-летней давности. Главная проблема (после говнокода) – политика отсутствия поддержки механизма DEP (защиты от выполнения данных) по умолчанию (режим OptIn). Подключить DEP можно несколькими путями.
Проверять наличие защиты (до кучи ещё и наличие защиты ASLR) автор [
1] рекомендует при помощи утилиты Sysinternals Process Explorer или BinScope Binary Analyzer.
Виндовый DEP может быть реализован аппаратно на совместимых процессорах при помощи NX-бита. (Проблема переполнения буфера на стеке существует и для Linux – там так же есть поддержка NX-бита и его программная эмуляция посредством ExecShield и PaX [вот такой наш
pax крутой!] для старых камней).
См. ещё (защита от срыва стека):
SecurityCookies
Stack-Smashing Protection (SSP)
Stack Canaries