【问题标题】:alternatives to GCC 3.4.3 option -fstack-protector-all?GCC 3.4.3 选项 -fstack-protector-all 的替代品?
【发布时间】:2012-01-20 04:47:08
【问题描述】:

我正在尝试在 GCC 3.4.3 编译器中设置选项 -fstack-protector-all 以启用一些堆栈粉碎保护方案。然而,当我用这个编译时
error: unrecognized command line option "-fstack-protector-all" .所以似乎这个选项没有在 GCC 3.4.3 中实现?还是我错过了什么?

如果它没有在旧的 GCC 编译器中实现,那么最好/最简单的替代方法是什么?

或者也许一些有用的代码模式可以在 C 代码本身中实现堆栈粉碎保护器?

谢谢

【问题讨论】:

  • GCC 3.4.3 已经超过七年了。是时候升级了。
  • 我们不能,因为我们使用了一些与 GCC4 不兼容的供应商库...
  • 你付钱给他们?是时候让他们的产品适应当下了。
  • 我们购买了他们的一些设备,但他们不发送/拥有/开发?旧设备的新固件库升级。是的,如果他们这样做就好了,因为我们买不起新设备。

标签: c arm gcc3


【解决方案1】:

您似乎只是 gcc 版本的一个次要版本,似乎能够为您提供这种特殊的粉碎保护。我在谷歌搜索时发现了这个:

http://www.research.ibm.com/trl/projects/security/ssp/

也许您可以升级到那个(一个次要编号)并且仍然与您的供应商兼容?

另外,由于至少多年来金丝雀值在 gcc 中默认设置(无需使用您提到的选项),您是否看过简单程序的反汇编?如果您在堆栈末尾附近的 (gs) 位置看到一些存储/加载,则它已经实现。

【讨论】:

  • 欧普斯。这就是它在 x86 Linux 中的实现方式。但您可能也会在 ARM 中的受保护内存区域之间进行类似的复制。
  • 关于默认粉碎保护设置 - 默认情况下在 某些 系统上启用,但并非对所有系统都启用。例如 - SSP 在 Linux Mint 中被禁用。
猜你喜欢
  • 2011-12-10
  • 2018-11-30
  • 2019-03-18
  • 2012-03-23
  • 1970-01-01
  • 2016-09-22
  • 1970-01-01
  • 2013-06-16
  • 1970-01-01
相关资源
最近更新 更多