【问题标题】:C++ Professional Code Analysis ToolsC++ 专业代码分析工具
【发布时间】:2010-03-28 10:24:26
【问题描述】:

我想问一下可用于 C++ 应用程序,尤其是 COM 和 ActiveX 的可用(免费或非)静态和动态代码分析工具。

我目前正在使用 Visual Studio 的 /analyze 编译器选项,这很好,但我仍然觉得有很多分析要做。

我说的是内存管理和代码安全至关重要的 C++ 应用程序。

我正在尝试检查与安全相关的问题,例如内存管理、输入验证、缓冲区溢出、异常处理......等等

我对继承深度或可执行代码行数不感兴趣。

【问题讨论】:

  • 如果您能详细说明要检查的问题类型,将会很有帮助。

标签: c++ visual-studio-2008 security visual-c++ activex


【解决方案1】:

毫无疑问,您想使用Axman。这是迄今为止最好的 ActiveX/Com 安全测试工具,并且是开源的。这是 H.D. 在Month Of Browser Bugs 中使用的主要工具之一。 Moore,他也是Metasploit 的创建者。我个人用Axman找漏洞,写exploit code

Axman 使用 TypeLib 来识别构成 COM 的所有组件。这是一个类型relfection,这意味着不需要源代码。 Axman 使用反射自动生成针对 COM 的模糊测试用例。

【讨论】:

  • 谢谢。我在 Hacking Exposed Web 2.0 中读到了 Axman,但很高兴知道它是对 ActiveX/COM 对象进行模糊测试的最佳工具。
【解决方案2】:

最近在温哥华举行的 Pwn2Own 2010 竞赛中使用了一种称为 fuzzer 的安全工具类别。获胜者说他不会告诉软件制造商他发现了哪个错误,而是告诉软件制造商如何创建一个好的模糊器,让他们能够找到错误。 This was covered by computerworld.

基本上,它会找到软件可以输入的每个位置,并尝试注入随机数据,直到应用程序崩溃。从那里开始,用户试图了解哪里出了问题并开发出有效的攻击。

我不知道任何特定的模糊器,但它们有很多种用途不同(缓冲区溢出与 sql 注入,2 个非常不同的问题,2 个不同的模糊器)

【讨论】:

    【解决方案3】:

    我们使用Coverity Prevent,这是一个非常复杂的静态分析工具,可将缺陷存储在具有 Web 界面的数据库中。它适用于 C、C++ 和 Java。

    我们还使用 Valgrind 等开源工具。

    【讨论】:

    • 非常感谢,我会调查一下 inshallah。
    • 保障性不是很好,而且真的很贵。
    • 好像比我家贵。
    【解决方案4】:

    从这里开始,按照你的方式工作http://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis

    当我说“google it”时,我并不是要粗鲁。就个人而言(ymmv),我从谷歌搜索中学到的不仅仅是让别人给我“答案”。

    另外,当我寻找工具时,我会去 SourceForge 寻找 - 在这种情况下 - "static code analysis"

    顺便说一句,看看 Valgrind

    【讨论】:

    • 谢谢,不用担心,在询问之前我已经用谷歌搜索并检查了 Valgrind。然而,不能太确定,同行的经验是无价的!​​span>
    • +!宽容;-)顺便说一句,你能自动化检查吗?例如,在签入 SVN 或夜间构建时(例如 Huson)。您可能需要一个脚本来解析结果并在它标记任何内容时发送电子邮件?您是否需要一些静态代码分析工具的输出作为代码审查的输入?
    猜你喜欢
    • 1970-01-01
    • 2014-08-23
    • 1970-01-01
    • 2011-05-07
    • 1970-01-01
    • 2010-11-21
    • 2012-07-17
    • 2010-10-12
    • 1970-01-01
    相关资源
    最近更新 更多