gpt4 book ai didi

c - 默认 GCcflags

转载 作者:太空宇宙 更新时间:2023-11-04 00:26:08 27 4
gpt4 key购买 nike

我正在编写一个简单的 C 程序,我应该用缓冲区溢出来攻击它。所以,我不想在编译时使用任何标志。如何消除使用的默认标志?

# readelf -p .GCC.command.line stack

String dump of section '.GCC.command.line':
[ 0] stack.c
[ 8] -D_FORTIFY_SOURCE=2
[ 1c] -mtune=generic
[ 2b] -march=i486
[ 37] -frecord-gcc-switches
[ 4d] -fstack-protector

最佳答案

那里仅有的两个有意义的选项是 -D_FORTIFY_SOURCE-fstack-protector,因此只需包括 -U_FORTIFY_SOURCE-fnostack-protector,它们实际上已经“消失”了。

您不能为“无架构”(march) 进行编译,摆脱 mtune 同样毫无意义。 GCC 必须为某事 构建代码。您已经尽可能通用了。

-frecord-gcc-switches,好吧,如果没有它,您一开始就不知道包含了哪些开关,但如果您真的想摆脱它,只需使用 -fnorecord-gcc-switches.

-f* options大多数是 bool 标志,因此您几乎总是可以通过在前面添加 no 来关闭它们,就像我上面所做的那样。

关于c - 默认 GCcflags,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12310772/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com