我正在开发一个homework problem,它需要禁用编译器优化保护才能工作。我在ubuntu linux上使用的是gcc 4.4.1,但是我不知道哪些标志是正确的。我意识到它依赖于架构--我的机器运行的是32位Intel处理器。
谢谢。
发布于 2010-02-26 16:17:01
尝试使用-fno-stack-protector
标志。
发布于 2015-04-07 08:38:32
你不需要禁用ASLR来做一个缓冲区溢出!尽管启用了ASLR (kernel_randomize_va_space = 2
),但它不会生效,除非编译的可执行文件是PIE。因此,除非你编译你的文件与-fPIC -pie
标志,ASLR将不会生效。
我认为只需使用-fno-stack-protector
禁用金丝雀就足够了。如果要检查ASLR是否正常工作(必须设置位置无关代码),请使用:
hardening-check executable_name
https://stackoverflow.com/questions/2340259
复制相似问题