Stack Canary - базовая защита от переполнения буфера. В стек помещаются секретные значения (канарейки), которые меняются при каждом запуске программы. Перед возвратом функции проверяется канарейка стека, и, если она оказывается измененной, программа завершается немедленно до того, как произойдёт какая-либо вредоносная операция.