14.2. Canary

14.2.1. 简介

在发生栈溢出攻击时,通常会修改函数栈,那么通过在缓冲区和控制信息(如 EBP 等)间插入一个 canary 。这样,当缓冲区溢出发生时,在返回地址被覆盖之前 canary 会首先被覆盖。通过检查 canary 的值是否被修改,就可以判断是否发生了溢出。

14.2.2. 特点

  • 在fork时,canary并不会改变,可以利用这种方式来爆破其值