Underword

地底世界
专注挖洞不填坑
  1. 首页
  2. 编程
  3. 开发
  4. 正文

GCC编译中几种保护打开和关闭的参数

2020年11月11日 479点热度 0人点赞 0条评论

在出PWN的题,记录一下怎么编译

NX

指令 翻译
-z execstack 可以执行栈上的数据
-z noexecstack 不让执行栈上的数据,于是JMP ESP就不能用了

Canary

指令 翻译
-fno-stack-protector 关闭栈溢出检测
-fstack-protector 仅为char类型开启栈溢出检测
-fstack-protector-all 为所有类型开启栈溢出检测

检测方法

在入栈前保存一个随机数
在返回前比对现在的随机数和保存的随机数
如果不一样就退出程序并报错

PIE

指令 翻译
-no-pie 关闭PIE(每个函数地址固定)
-pie 开启PIE(每个函数地址随机)

RELRO

指令 翻译
-z norelro 关闭RELRO,对GOT表具有写权限
-z lazy 部分开启RELRO
-z now 完全开启RELRO,对GOT表没用写权限
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可
标签: GCC
最后更新:2020年12月4日

Kami

这个人很懒,什么都没留下

打赏 点赞
< 上一篇
下一篇 >

文章评论

取消回复

Kami

这个人很懒,什么都没留下

最新 热点 随机
最新 热点 随机
木马的持久化方法 - Windows PWN小记 - pwnable.tw - Start GDB常用命令记录 [UE4] 使用C++打印调试信息的方法 [UE4] 从摄像机发出射线的蓝图及C++的实现方法 [UE4] 在UE4中显示文件选择对话框
GDB常用命令记录PWN小记 - pwnable.tw - Start木马的持久化方法 - Windows
在Podman中安装Samba途中的共享文件夹权限问题 让Selenium基于Edge执行自动化测试 cookie2json - 将cookie字符串转为Json的便捷工具 Numpy中矩阵的切片方法 Python格式化字符常量 - 更酷的格式化字符串 VMware vctl 使用国内源/镜像更新方法
分类
  • Alpine
  • C#
  • CentOS
  • Cisco
  • Docker
  • Factorio
  • Gradle
  • PHP
  • Podman
  • PWN
  • Python
  • Tensorflow
  • Unity
  • Unreal4
  • Windows
  • 博客
  • 安全
  • 建模
  • 开发
  • 杂项
  • 比赛
  • 游戏
  • 游戏分享
  • 游戏破解
  • 软件分享
标签聚合
Gradle python ue4 Unity 安全 Docker typecho ECS
书签
  • eNSP下载处
  • Shell Storm
  • 安全信息
  • 小刀娱乐网
  • 懒得勤快
  • 龋齿一号

COPYRIGHT © 2020 Underword. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

沪ICP备2020032896号-1