【问题标题】:BOOST Hardening Guide (Preprocessor Macros)BOOST 强化指南(预处理器宏)
【发布时间】:2013-02-17 22:50:19
【问题描述】:

我很难确定应该将哪些预处理器宏与 Boost 一起用于 (1) 调试工具(例如检查的迭代器)和 (2) 与安全相关的项目。

我似乎只能找到 Preprocessor Metaprogramming(链接自 www.boost.org/libs/preprocessor/)。

更新(2013 年 2 月 18 日):我找到了 Boost Macro Reference,但它缺少与调试或安全相关的任何内容。

有人知道用于调试和安全的可用预处理器宏列表或强化指南吗?

【问题讨论】:

  • 答案可能特定于 boost 库,您的目标是哪些?
  • 谢谢@Sam。至于哪个图书馆 - 都是。 Boost 应该有编码要求、质量检查等。所以我希望他们有类似于 GCC 的_GLIBCXX_DEBUG 或微软的_HAS_ITERATOR_DEBUGGING 的东西。或者 Boost 是否支持这些宏(并尊重其他宏,例如 DEBUG_DEBUG)?

标签: boost boost-preprocessor


【解决方案1】:

我所知道的任何 boost 库中都没有任何等效项。他们中的一些人尊重NDEBUG 并在此基础上进行优化(还有一些断言NDEBUG 会禁用),因此似乎可以预期将NDEBUG 设置为发布但不进行调试(是否离开NDEBUG 未定义发布算作“硬化”,我不知道)。但可以肯定的是,没有任何一个库具有超出给它们任何额外装甲或可调试性的选项。

boost 库应如何与 Microsoft 的 _HAS_ITERATOR_DEBUGGING 尤其是 _SECURE_SCL 交互是一个反复出现的争论,例如 hereherehere(对于它不生成的“仅标题”库差异很大;确保所提供的 DLL 与集成商的期望兼容更是一个问题,并且对于是否应该使用这些选项的 MS 默认值没有统一的协议,因为许多人对性能开销持怀疑态度)。

【讨论】:

  • 谢谢@timday。我会在C-Based Toolchain Hardening 做笔记。杰夫
  • 你的名字是“Tim Day”吗?我想在 OWASP 文章中引用您。
  • 是的,没关系。现在我已经看到了上下文,在上面添加了更多链接。
猜你喜欢
  • 2021-10-19
  • 2014-10-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-21
  • 1970-01-01
  • 2015-04-15
  • 2010-09-23
相关资源
最近更新 更多