首页 > 其他 > 详细

Gcc编译命令

时间:2020-02-13 01:07:55      阅读:73      评论:0      收藏:0      [点我收藏+]

完善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编译命令

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!