Gcc编译命令

Posted da1sy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Gcc编译命令相关的知识,希望对你有一定的参考价值。

完善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编译命令的主要内容,如果未能解决你的问题,请参考以下文章