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