首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何关闭gcc编译器优化以启用缓冲区溢出

如何关闭gcc编译器优化以启用缓冲区溢出
EN

Stack Overflow用户
提问于 2010-02-26 16:14:10
回答 2查看 128.5K关注 0票数 79

我正在开发一个homework problem,它需要禁用编译器优化保护才能工作。我在ubuntu linux上使用的是gcc 4.4.1,但是我不知道哪些标志是正确的。我意识到它依赖于架构--我的机器运行的是32位Intel处理器。

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2010-02-26 16:17:01

尝试使用-fno-stack-protector标志。

票数 6
EN

Stack Overflow用户

发布于 2015-04-07 08:38:32

你不需要禁用ASLR来做一个缓冲区溢出!尽管启用了ASLR (kernel_randomize_va_space = 2),但它不会生效,除非编译的可执行文件是PIE。因此,除非你编译你的文件与-fPIC -pie标志,ASLR将不会生效。

我认为只需使用-fno-stack-protector禁用金丝雀就足够了。如果要检查ASLR是否正常工作(必须设置位置无关代码),请使用:

代码语言:javascript
复制
hardening-check executable_name
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2340259

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档