一:首先来了解一下linux下常见的攻击缓解机制: CANARY:(金丝雀值,指的是矿工曾利用金丝雀来确认是否有气体泄漏,如果金丝雀因为气体泄漏而中毒死亡,可以给矿工预警),类似于windows GS技术,当栈溢出发生时,canary值将在已保存的指令指针被重写前先改变.系统检测这个值是否改变,栈溢出发生了,保存的指令指针可能也被修改了,因此不能安全返回,函数会调用__stack_chk_fail函数.这个函数会丢出一个错误然后退出进程.缺点:仅保护了sip,未保护应用变量,覆写GOT绕过. F