псевдокод уязвимой функции до защиты Pro-Police
Int32 random_number; // глобальный canary, генерируемый случ. образом
foo ()
{
volatile int32 guard; // локальная копия canary, охраняющая кадр
char buf[128]; // буфер идет перед всеми локальными переменными!
char *p; // локальная переменная-указатель
guard = random_number; // копируем глобальный canary в лок. переменную
gets
(buf);
// вызываем уязвимую функцию
if (guard != random_number) /* program halts */
}