码迷,mamicode.com
首页 > 其他好文 > 详细

Gcc编译命令

时间:2020-02-13 00:32:42      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:基础上   指针   info   can   get   pac   table   编译环境   top   

完善gcc编译环境

Apt-get install gcc-multilib

? ?

-static

静态编译

-z execstack

关闭栈不可执行保护

-m32

生成32位程序

-fno-stack-protector

不开启堆栈溢出保护,即不生成canary

-mpreferred-stack-boundary=4

影响二进制文件中生成的代码,将堆栈指针对齐在四字节的边界上

-no-pie

关闭pie以避免基地址被打乱

还需要系统开启ASLR才会真正打乱基地址

/proc/sys/kernel/randomize_va_space

0

关闭ASLR,没有随机化

堆栈.so的基地址每次相同

1

普通ASLR

栈基地址、mmap基地址、.so加载基地址都被随机化,但是堆地址没有被随机化

2

增强ASLR

在1的基础上增加了堆地址随机化

? ?

? ?

使用checksec工具检查编译出的文件

技术图片

Gcc编译命令

标签:基础上   指针   info   can   get   pac   table   编译环境   top   

原文地址:https://www.cnblogs.com/da1sy/p/12301848.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!