#include void go(void); void findguard(void); extern unsigned long int __guard; int main(void) { printf("__guard@@GLIBC mem: [[0x%0*x]] value: [[0x%0*x]]\n", 8, &__guard, 8, __guard); go(); return(0); } void go(void) { findguard(); return; } void findguard() { int loca = 0xdeadbeef; int *g = &loca; g += 0x1; printf("__guard canary mem: [[0x%0*x]] value: [[0x%0*x]]\n", 8, g, 8, *g); while(1); return; }