Есть такая штука Stack Canary. Она отвечает за защиту от переполнения буфера, вполне возможно, что это не единственный механизм, но один из основных, которые отвечают за это.
Есть аргументы компилятора, которые убирают защиту от переполнения и соответственно добавив их можно посмотреть и сравнить бинарники с защитой и без.
В принципе вопрос особо ничего не стоит и гуглиться по первым ссылкам буквально, но допустим.
От себя порекомендую видео S0ER на эту тему