DIY堆栈保护

Posted

技术标签:

【中文标题】DIY堆栈保护【英文标题】:DIY stack protection 【发布时间】:2011-07-30 21:45:20 【问题描述】:

我有一个 C++ 中的 android NDK 项目。客户抱怨间歇性的、不可重现的故障。我怀疑某处存在内存损坏错误。我已经有一个 malloc 屏障;现在我想检查堆栈损坏。

GCC 的 -fstack-protector 对我来说听起来太极端了;当它检测到错误时,它只会杀死程序;我想要一些更用户友好的东西(一条消息,然后杀死:))。问题 - 有没有办法在 GCC 下实现程序员控制下的堆栈一致性检查器?我不介意内联汇编。

例如,一些公开堆栈框架结构的预定义宏会派上用场。

【问题讨论】:

【参考方案1】:

请参阅此问题的最高答案,了解为什么 stack-protecter 用于强化而不是调试:When and how to use GCC's stack protection feature?

【讨论】:

以上是关于DIY堆栈保护的主要内容,如果未能解决你的问题,请参考以下文章

使用静态大小的数组进行堆栈保护的预期行为是啥?

fread保护堆栈溢出错误

保护程序的堆栈内存

如何为使用 Xamarin 构建的 iOS 应用启用堆栈粉碎保护?

使用 MEAN 堆栈保护路由和模板?

RStudio 错误 - 创建大型环境对象:protect():保护堆栈溢出