我正在尝试在GCC 3.4.3编译器中设置选项-fstack-protector-all
以启用一些堆栈粉碎保护方案。但是在编译时我得到了错误:无法识别的命令行选项“-fstack-protector-all”
。所以看来这个选项没有在GCC 3.4.3中实现?或者我错过了什么?
如果它没有在较旧的GCC编译器中实现,那么最好/最简单的替代方法是什么?
或者可能是一些有用的代码模式在C代码本身中实现堆栈粉碎保护器?
由于
答案 0 :(得分:0)
你似乎只是gcc版本的一个小版本,似乎能够为你提供这种特殊的粉碎保护。我在谷歌搜索时发现了这个:
http://www.research.ibm.com/trl/projects/security/ssp/
也许您可以升级到那个(一个次要号码)并仍然与您的供应商兼容?
此外,至少在gcc中默认设置了多年的金丝雀值(不需要使用你提到的选项),你看过一个简单程序的反汇编吗?如果你看到从堆栈末端附近的(gs)位置存储/加载,它已经实现了。