• NX:-z execstack / -z noexecstack (关闭 / 开启) 不让执行栈上的数据,于是JMP ESP就不能用了
  • Canary:
    • -fstack-protector 启用保护,不过只为局部变量中含有数组的函数插入保护
    • -fstack-protector-all 启用保护,为所有函数插入保护
    • -fstack-protector-strong
    • -fstack-protector-explicit 只对有明确stack_protect attribute的函数开启保护
    • -fno-stack-protector 禁用保护.
  • PIE:-no-pie / -pie (关闭 / 开启) 地址随机化,另外打开后会有get_pc_thunk
  • RELRO:-z norelro / -z lazy / -z now (关闭 / 部分开启 / 完全开启) 对GOT表具有写权限