Canary绕过 canary是Linux的一种代码保护机制,通过在程序中加入一个校验值,来防止程序被破坏。 Canary原理 程序启动时,从某个特定地址(例如fs+28H)处读取一个数值进行保存。 在需要时,重新比较两个值,如果xor的结果不为0,说明有值被修改了,代表程序被破坏。 Canary的处理 检测 可通过checksec命令来检测是否开启了Canary保护。 获取Canary 为了在栈溢出时不破坏canary的值导致程序退出,我们要获取canary的值,并在溢出时将其构造回原位置。 我们在上图中[rbp…