**buffer-overrun**: 我们 “去掉” 所有的编译保护,就能体验到缓冲区溢出带来的 “灾难性后果”:我们可以把一段代码注入到缓冲区中,然后利用覆盖的返回地址跳转到任意的代码——我们就获得了这个进程所拥有的一切权限。