- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在编写一个简单的 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/
在流程的链接部分,是否存在 -ansi、-Wall 和 -pedantic 等标志可能相关的情况? -O 优化标志怎么样?它们仅在编译步骤期间相关,还是在链接期间也相关? 谢谢! 最佳答案 在实践中,
我正在编写一个简单的 C 程序,我应该用缓冲区溢出来攻击它。所以,我不想在编译时使用任何标志。如何消除使用的默认标志? # readelf -p .GCC.command.line stack Str
我正在尝试在 powerpc arch 上运行 Rust 程序。当我在 C 中构建我的代码时,我使用标志 -mlongcall。 我如何为我的 Rust 程序使用这个标志?一般来说,如果我能在我的 R
我真的需要一些基本问题的帮助。我即将永远放弃学习 GCC,因为基础知识对我来说似乎没有意义。我已经阅读了数百篇文章,但无法弄清楚如何通过 configure 获得基本的 -std=c++11 工作调用
我是一名优秀的程序员,十分优秀!