静态代码分析工具列表
这是用于静态程序分析的著名工具的列表(程序分析是代码分析的同义词)。
静态代码分析工具
工具 | 最新发布 | 免费软件 | 支持的语言 | 笔记 | ||||||
---|---|---|---|---|---|---|---|---|---|---|
艾达 | C / C ++ / C# / Objective -C | JVM | JavaScript /打字稿 | .net / vb.net | Python | 其他语言 | ||||
adacontrol | 2021-09-21(1.22R15) | 是的; GPLV2 | 艾达 | — | — | — | — | — | — | 用于控制ADA代码中各种实体或编程模式的发生的工具,用于检查编码标准,执行与安全有关的规则以及对各种手动检查的支持。功能自动修复违规行为。 |
Apache Yetus | 2020-12-17 (0.13.0) | 是的; ASL 2 | — | C,C ++ | 爪哇 | — | — | Python | Perl , Ruby , Shell , XML | 构建和释放工具的集合。其中包括用于执行完整和部分/补丁的CI构建的“预称”模块,该模块通过其他工具作为可配置报告的一部分提供代码静态分析。内置支持可以使用插件扩展。 |
阿斯特雷 | 2021-10 (21.10) | 不;所有权 | — | C | — | — | — | — | — | 通过抽象解释找到所有潜在的运行时错误和数据竞赛,可以证明它们的缺失,并可以证明功能性主张;针对安全至关重要的C代码(例如航空电子和汽车)量身定制。包括Misra检查器。 |
斧头包豪斯套房 | 不;所有权 | 艾达 | C,C ++,C# | 爪哇 | — | — | — | — | 静态代码分析工具套件,该工具套件进行了各种分析,例如体系结构检查,接口分析, MISRA检查和克隆检测。 | |
爆炸(退休) | 2015-10-30 (2.7.3) | 是的; ASL 2 | — | C | — | — | — | — | — | 基于懒惰抽象的C程序的开源软件模型检查器(后续项目是Cpachecker。)。 |
铛 | 2023-11-28 (17.0.6) | 是的; ASL 2带有LLVM例外 | — | C,C ++,Objective -c | — | — | — | — | — | 包括静态分析仪的开源编译器。从3.2版开始,该分析仪包含在XCode中。 |
球球 | 2021-09-06 (1.1.1) | 是的; GPLV2 | — | C | — | — | — | — | — | 开源源代码模式匹配和转换。 |
代码DX | 不;所有权 | — | C,C ++,C# | Java, JSP , Scala | JavaScript | vb.net | Python | php,rails,ruby,xml | 软件应用程序漏洞相关性和管理系统,使用多种SAST和DAST工具以及手动代码评论的结果。可以计算循环复杂性。 | |
Codepeer | 2021-05-07 (21) | 不;所有权 | 艾达 | — | — | — | — | — | — | 一种高级静态分析工具,可检测ADA程序中潜在的运行时逻辑错误。 |
Coderush | 2021-05-04 (20.2.11) | 不;所有权 | — | C# | — | JavaScript | vb.net | — | ASP,HTML,XML,XAML | 视觉工作室的插件,可提醒用户违反最佳实践。 |
代码 | 2023-10-13
(6.3.5) |
不;所有权 | — | C,C ++,C#,Objective -c | Java, Groovy ,Scala | JavaScript,打字稿 | vb.net | Python | Swift,Go,Php,Ruby | 代码的行为分析。有助于确定,优先级和管理技术债务。衡量开发人员团队的组织方面。自动拉请求集成。 |
codeql | 2023-02-07(CLI:2.12.2) | 不;所有权 | — | C,C ++,C# | 爪哇,科特林 | JavaScript,打字稿 | 。网 | Python | 去,红宝石 | 一个代码搜索工具,重点是查找软件错误。搜索模式是用查询语言编写的,可以搜索支持语言的AST和图形(CFG,DFG等)。可用于Visual Studio的插件。 |
Conqat (退休) | 2015-02-01 | 是的; ASL 2 | 艾达 | C#,C ++ | 爪哇 | JavaScript | — | — | abap | 连续质量评估工具包可以灵活地配置质量分析(体系结构符合,克隆检测,质量指标等)和仪表板。 |
掩护 | 2023-04-29 (2022.12) | 不;所有权 | — | C,C ++,C#,Objective -c | 爪哇 | JavaScript,打字稿 | — | Python | Ruby,php | 用于安全和质量问题的多语言工具。支持合规标准( Misra , ISO 26262等)。免费用于开源项目。 |
Eclair | 2021-07-15 (3.11) | 不;所有权 | — | C,C ++ | — | — | — | — | — | 用于软件验证的多语言工具。应用程序范围从编码规则验证到自动生成测试柜,到缺乏运行时错误或产生反例的证明以及基于代码匹配者和基于句法和语义条件的代码匹配者和重写者的规范。支持合规标准( MISRA ,嵌入式C编码标准等)。 |
CPACHECKER | 2022-01-24 (2.1.1) | 是的; ASL 2 | — | C | — | — | — | — | — | 用于执行路径检查的可配置软件验证工具。 |
CPPCHECK | 2023-09-10 (2.12) | 是的; GPLV3 | — | C,C ++ | — | — | — | — | — | 开源工具检查几种类型的错误,包括使用STL 。正在添加Misra支持。 |
依赖 | 2023-03-01 (2023.1) | 不;所有权 | — | C,C ++ | — | — | — | — | — | 通过分析和可视化代码依赖性,通过进行设计规则,进行影响分析和比较代码的不同版本来简化管理复杂的C/C ++代码库。 |
cpplint | 2020-07-29 | 是的; cc-by-3.0 | — | C ++ | — | — | — | — | — | 一种开源工具,可检查是否符合Google样式指南的C ++编码指南。 |
波动 | 2001 | 不;所有权 | ADA95 | C | — | — | — | — | — | 用于验证程序数值属性的抽象解释器。 |
frama-c | 2022-06-21 | 是的; LGPL v2.1 , BSD , QPL | — | C | — | — | — | — | — | C具有多个分析仪和所有人共有的规范语言的C的开源可扩展分析框架。包括基于抽象解释,演绎验证和运行时监视的分析。 |
Grammatech Codesonar | 2020-06-01 (5.3) | 不;所有权 | — | C,C ++,Objective -c | 爪哇 | — | — | — | — | 缺陷检测(缓冲区超支,内存泄漏等),并发和安全检查,体系结构可视化和软件指标。 |
海湾合作委员会 | 2023-4-26 (13.1) | 是的; GPLV3+带有GCC运行时库例外 | — | C | — | — | — | — | — | 用-FANALYZER标志编译(可从GCC 10获得)启用静态分析仪功能 |
HCL安全应用程序源 | 2020-12-01 (10.0.3) | 不;所有权 | — | C,C ++ | Java,JSP | JavaScript | 。网 | Python | ColdFusion,ASP,PHP,Perl,Visual Basic 6,PL/SQL,T-SQL,COBOL | 分析源代码以确定安全漏洞,同时将安全性测试与软件开发过程和系统集成在一起。 |
螺旋QAC | 2023-04 (2023.1) | 不;所有权 | — | C,C ++ | — | — | — | — | — | 以前是PRQA QA·C和QA·C ++,C/C ++的深层静态分析,用于质量保证和指南/编码标准执法,并提供MISRA支持。 |
推断静态分析仪 | 2021-03-26 (1.1.0) | 是的;麻省理工学院 | — | C,C ++,Objective -c | 爪哇 | — | — | — | — | 针对null指针问题,泄漏,并发问题和Facebook移动应用程序的API使用情况。在GitHub上可用作为开源。有时被称为Facebook推断。 |
Imagix 4D | 2020-10-01 (10.1.0) | 不;所有权 | — | C,C ++ | 爪哇 | — | — | — | — | Windows和Linux版本。 |
Kiuwan | 2020-07-22 | 不;所有权 | — | C,C ++,C#,Objective -c | Java,JSP | JavaScript | vb.net | — | ABAP,COBOL,PHP, PL/SQL , T-SQL ,SQL,Visual Basic, Android | 软件分析端到端平台用于静态代码分析和自动代码审核。它涵盖了缺陷检测,应用程序安全和IT风险管理,并具有增强的生命周期和应用治理功能。支持20多种语言。 |
Klocwork | 2023-04-04 (2023.1) | 不;所有权 | — | C,C ++,C# | 爪哇 | JavaScript | — | Python | 科特林 | 提供安全漏洞,标准合规性(MISRA, ISO 26262等),缺陷检测和建立趋势分析 |
LDRA测试床 | 2021-05-07(v9.8.6) | 不;所有权 | ADA83,ADA95 | C,C ++ | — | — | — | — | 汇编器(德克萨斯州的Freescale,Intel) | 执行静态分析的软件分析和测试工具套件,标准执行(例如MISRA C/C ++),动态分析,单位测试和需求可追溯性。 |
皮棉 | 1978-07-26 | 是的;允许的BSD状 | — | C | — | — | — | — | — | 最初的1978年,C。 |
马尔帕斯 | 不;所有权 | 艾达 | C | — | — | — | — | Pascal,汇编器(英特尔,PowerPC和摩托罗拉) | 用于多种语言的软件静态分析工具集。主要用于核和航空工业的安全关键应用。 | |
驼鹿 | 2021-01-21 (7.0.3) | 是的;麻省理工学院 | — | C,C ++ | 爪哇 | — | 。网 | — | 短暂聊天 | Moose最初是一个软件分析平台,其工具可以操纵,评估或可视化软件。它可以演变为更通用的数据分析平台。 |
ndection | 2022-03-16 (2022.1) | 不;所有权 | — | — | — | — | c#vb.net .net | — | — | 通过分析和可视化代码依赖性,通过进行设计规则,进行影响分析和比较不同版本来简化管理复杂的.NET代码库。集成到Visual Studio中。 |
.NET编译器平台( Roslyn ) | 2020-12-08 (3.8.0) | 是的;麻省理工学院 | — | C# | — | — | vb.net | — | — | 由Microsoft .NET开发的C#和Visual Basic .NET的开源编译器框架。提供用于分析和操纵语法的API。 FXCOP规则已实施到罗斯林。 |
Parasoft C/C ++测试 | 2020-11-12 (2020.2) | 不;所有权 | — | C,C ++ | — | — | — | — | — | 进行静态分析,单位测试,代码审查和运行时错误检测的AC/C ++工具;可用于Visual Studio和Eclipse的IDE的插件。 |
PC-lint Plus | 2022-08-02(2.0 beta 2) | 不;所有权 | — | C,C ++ | — | — | — | — | — | 一种用于检测多种缺陷,识别可疑代码,执行各种编码标准(MISRA/AUTOSAR/ETC),计算和报告复杂指标的静态分析工具,并实现用户定义的检查。 |
PMD | 2023-2-25 (6.55.0) | 是的;像BSD一样 | — | C,C ++ | Java,JSP | JavaScript | — | — | Coldfusion ,PHP | 重复代码检测(例如)代码。 |
Polyspace | 不;所有权 | 艾达 | C,C ++ | — | — | — | — | — | 使用抽象解释来检测并证明源代码中没有某些运行时间错误和死亡代码,并用于检查所有Misra(2004,2012)规则(指令,非指令)。 | |
很差 | 2019-04-21 (101.0.0) | 是的; CC0 | — | — | — | JavaScript,打字稿 | — | — | 标记,脚本和样式语言(例如XML,CSS) | 具有语言特定的代码比较工具,该工具具有特定于语言的分析报告,此外还具有特定于语言的简化和美化算法。 |
PVS-Studio | 2021-10-07 (7.15) | 不;所有权 | — | C,C ++, C ++/CLI , C ++/CX ,C# | 爪哇 | — | — | — | — | 软件分析工具。 |
Qodana | 2023-07-23 (2023.2) | 不;所有权 | — | C# | 爪哇,科特林 | JavaScript,打字稿 | vb.net | Python | GO,HTML,PHP,CSS,Android,vue.js | 使用静态代码分析的代码质量分析工具。 |
撕裂 | 2020-02-17 (3.4) | 不;所有权 | — | — | 爪哇 | — | — | — | php | 一种具有许多集成选项的静态代码分析解决方案,用于自动检测复杂的安全漏洞。 |
在线萨斯特 | 2022-03-07 (1.1.0) | 不;所有权 | — | — | 爪哇 | — | — | — | Kotlin , APK | 彻底检查Android源代码,以发现和解决潜在的安全问题和漏洞。静态应用程序安全测试(静态代码分析)工具在线 |
semgrep | 2023-12-12 (1.53.0) | 是的; LGPL v2.1 | — | — | 爪哇 | JavaScript,打字稿 | — | Python | GO, JSON ,RUBY,语言不可思议的模式 | 一种静态分析工具,可帮助早日表达代码标准和浮出水错误。它还为其他11种语言提供了实验支持。 CI服务和规则库也可用。 |
sider | 2021-02-02 | 不;所有权 | — | — | — | JavaScript,Coffeescript | — | Python | Ruby,PHP,去 | 基于静态代码分析的自动代码审核工具在GitHub和Gitlab上工作。检查样式,质量,依赖性,安全性和错误。它集成了许多开源静态分析工具。 |
SLAM项目 | 2010-07-14 | 不;所有权 | — | C | — | — | — | — | — | Microsoft研究的项目用于检查该软件(驱动程序)可满足其使用的接口的关键行为属性。 |
SOFCHECK检查员/编码器 | 2020-08-24(21.x) | 不;所有权 | 艾达 | — | 爪哇 | — | — | — | — | 逻辑错误,种族条件和冗余代码的静态检测。自动从代码中提取前后条件。 |
Sonarqube | 2023-04-03 (10.0) | 部分地;框架是LGPL v3.0 ,但某些功能可以是专有的 | — | C,C#,C ++,Objective -C | Java, Kotlin ,Scala | JavaScript,打字稿 | vb.net | Python | ABAP,APEX,CSS,COBOL,FLEX,GO,HTML,PHP,PLI,PL/SQL,RUBY,SWIFT,TSQL,Visual Basic 6,XML | 连续的检查引擎,发现漏洞,错误和代码气味。还跟踪代码复杂性,单位测试覆盖范围和重复。通过商业许可提供分支分析和C/C ++/Objective-C支持。 |
进气表 | 2016-12-16 (8.2) | 不;所有权 | — | C,C ++ | 爪哇 | — | — | Python | RPG IV(AS/400) | 独立于平台的命令行静态源代码分析仪。与PMD和Spotbugs集成。 |
Sourcetrail (退休) | 2021-04 (2021.4.19) | 是的; GPL | — | C,C ++ | 爪哇 | — | — | Python | 珀尔 | 提供交互式依赖图并支持多种编程语言的开源源代码资源管理器。 |
疏 | 2021-09-06 (0.6.4) | 是的;麻省理工学院 | — | C | — | — | — | — | GCC扩展 | 一种开源工具,旨在在Linux内核中找到故障。 |
夹板 | 2007-07-12 (3.1.2) | 是的; GPLV2 | — | C | — | — | — | — | — | 开源工具静态检查C程序是否有安全漏洞和编码错误。 |
Stylecop | 2016-05-02 (2016.1.0) | 是的; MS-PL | — | C# | — | — | 。网 | — | — | 分析C#源代码以执行一组样式和一致性规则。它可以从Microsoft Visual Studio内部运行,也可以集成到MSBUILD项目中。 |
挤压 | 2020-11-27 (20.1) | 不;所有权 | 艾达 | C,C ++,C#,Objective -c | 爪哇 | JavaScript,打字稿 | vb.net | Python | Fortran,PHP,PL/SQL,Swift,T-SQL,XAML | 用于软件项目的多功能和多语言监视工具。它与其他扫描仪集成在一起。 |
理解 | 2023-01-19 (6.3) | 不;所有权 | 艾达 | C,C ++,C#,Objective -c | 爪哇 | JavaScript | — | Python | Fortran,Jovial,Pascal,VHDL,HTML,PHP,XML | 用于代码分析和理解大型代码库的多平台工具。可以识别C,C ++和C#的多个方言,例如ANSI,K&R和Objective C ++。 |
视觉专家 | 2021-09-10 | 不;所有权 | — | — | — | — | — | — | PowerBuilder,Oracle PL/SQL,SQL Server Transact-SQL(T-SQL) | 连续代码检查,质量和安全问题的报告,有助于了解复杂的代码(交叉引用,源代码文档,代码比较,代码性能分析)。 |
视觉工作室 | 2021-10-12 (16.11) | 不;所有权 | — | C,C ++,C# | — | — | — | — | vb.net | 在编辑器环境和编译器命令行中为C/C ++提供静态代码分析的IDE。还包括提供C#和VB.NET分析的.NET编译器平台(Roslyn)。 |
Yasca (退休) | 2010-11-01 (2.21) | 是的;多个许可证 | — | C,C ++ | 爪哇 | JavaScript | — | — | ASP,PHP,HTML,CSS,ColdFusion, COBOL | 另一个源代码分析仪是一个基于插件的框架,用于扫描任意文件类型,并使用插件。它与其他扫描仪集成在一起,包括Findbugs , PMD和Pixy。 |
工具 | 发布 | 免费软件 | 支持的语言 | 笔记 |
语言
艾达
C , C ++
- 阿斯特里
- 爆破
- 铛
- 球球
- 掩护
- CPACHECKER
- CPPCHECK
- 依赖
- cpplint
- Eclair
- 蚀
- 波动
- frama-c
- 海湾合作委员会
- 螺旋QAC
- Facebook推断
- Klocwork
- 皮棉
- LDRA测试床
- Parasoft C/C ++测试
- PC-lint Plus
- Polyspace
- SLAM项目
- 疏
- Sonarqube
- 夹板
- 理解
- 视觉工作室
C#
- 斧头包豪斯套房
- 代码DX
- Coderush
- 代码
- codeql
- 掩护
- Kiuwan
- Klocwork
- .NET编译器平台
- PVS-Studio
- Sonarqube
- sotoarc
- Stylecop
- 挤压
- 理解
- 视觉工作室
IEC 61131-3
- CODESYS静态分析 -代码的集成附加组件(在ST,FBD,LD中实现的应用程序代码)
爪哇
工具 | 最新发布 | 免费软件 |
复制 代码 |
笔记 |
---|---|---|---|---|
checkstyle | 2020-01-26 | 是的; LGPL | 不 | 除了一些静态代码分析外,它还可以用来显示违反配置的编码标准的行为。从CheckStyle中删除了重复的代码检测。 |
蚀 | 2017-06-28 | 是的; EPL | 不 | 跨平台IDE具有自己的数百个代码检查集,可在编辑器和整个项目的批量分析中进行分析。用于CheckStyle,Findbugs和PMD的插件。 |
查找bug | 2015-03-06 | 是的; LGPL | 基于马里兰州大学的雅加达Bcel 。 Spotbugs是Findbugs的精神继任者,从其社区的支持下来。 | |
Intellij Idea | 2021-04-06 | 是的; ASL 2 | 是的 | 带有内置代码检查和分析的领先Java IDE。用于CheckStyle,Findbugs和PMD的插件。 |
Jarchitect | 2017-06-11 | 不;所有权 | 通过分析和可视化代码依赖性,定义设计规则,执行影响分析以及比较代码的不同版本来简化管理复杂的代码库。 | |
Jtest | 2019-05-21 | 不;所有权 | 是的 | Parasoft测试和静态代码分析产品。 |
煤烟 | 2020-10-28 | 是的; LGPL | 语言操纵和优化框架由中间语言组成。 | |
PMD | 2021-01-30 | 是的; BSD许可证 | 是的 | 静态代码分析仪,并支持插件,包括CPD 。 PMD支持检查几种语言。 |
怪异 | 2011-05-26 | 是的; LGPL | 管理软件质量的平台。 | |
线程安全 | 2014-03-28 | 不;所有权 | 静态分析工具的重点是查找并发错误。 |
JavaScript
- Eslint - JavaScript语法检查器和格式化器。
- Google的闭合编译器- 重写代码更快,更小的JavaScript优化器,并检查本机JavaScript功能的使用。
- 代码- 代码的行为分析。
- Jshint - JSlint的社区驱动的叉子。
- JSlint - JavaScript语法检查器和验证器。
- Klocwork
- SEMGREP - 一种静态分析工具,可帮助早日表达代码标准和表面漏洞。 CI服务和规则库也可用。
- 理解
Objective-C ,Objective-C ++
- Clang - 免费的clang项目包括一个静态分析仪。从3.2版开始,该分析仪包含在XCode中。
- 推断- 由Facebook的工程团队与开源贡献者开发。定位无效指针,泄漏,API使用和其他棉绒检查。在GitHub上可用作为开源。
- 理解
OPA
包装
珀尔
- Perl ::评论家- 一种帮助执行普通Perl最佳实践的工具。最佳实践是基于达米安·康威(Damian Conway )的Perl最佳实践书。
- Perltidy - 作为语法检查器和测试人员/执行者的编码实践的程序。
- PADRE - PERL的IDE,还提供静态代码分析以检查常见的初学者错误。
PL/SQL
- TOAD - 具有代码XPERT组件的PL/SQL开发环境,该组件报告一般代码效率以及特定的编程问题。
- 视觉专家- PL/SQL代码分析工具,该工具报告有关编程问题的报告,并有助于理解和维护复杂的代码(影响分析,源代码文档,呼叫树, Crud矩阵等)。
PowerBuilder ,PowerScript
Python
- PYCHARM - 跨平台Python IDE具有可在整个项目的编辑器和批量分析中直接分析代码的代码检查。
- PYDEV - 基于Eclipse的Python IDE,具有代码分析在编辑器中或保存时间可用的代码分析。
- Pylint - 静态代码分析仪。非常严格;还包括许多风格警告。
- Klocwork
- SEMGREP - 静态代码分析仪,可帮助表达代码标准并及早表面漏洞。 CI服务和规则库也可用。
- 理解
Transact-SQL
具有重复代码检测的工具
正式方法工具
使用声音的工具,即对严格的模型,正式方法的静态分析方法(例如,使用静态程序断言)。声音方法至少在理想化的数学模型基于的基于的理想化数学模型方面(没有“无条件”的声音)。请注意,不能保证他们会报告所有错误程序的错误,他们将至少报告一个错误。
- Astrée - 通过抽象解释找到所有潜在的运行时错误,可以证明没有运行时错误,并且可以证明功能性主张;针对安全至关重要的C代码(例如,航空电子学)量身定制。
- CodePeer - 静态确定和文档的ADA子程序前和后条件;静态检查所有呼叫站点的先决条件。
- Eclair - 使用基于正式方法的静态代码分析技术,例如抽象解释和模型检查与约束满意度技术结合使用,以检测或证明源代码中没有某些运行时错误。
- ESC/Java和ESC/Java2 - 基于Java建模语言,这是Java的丰富版本
- Frama-C - 基于ANSI/ISO C规范语言(ACSL)的C的开源分析框架。它的主要技术包括抽象解释,演绎验证和运行时监视。
- 钥匙- 基于定理的Java分析平台,其规格在Java建模语言中证明;可以作为反例生成测试用例;独立的GUI或Eclipse集成
- MALPAS - 一种使用定向图和常规代数的形式方法工具证明该软件在分析中正确符合其数学规范。
- PolySpace - 使用抽象解释,一种基于正式方法的技术,来检测并证明C/C ++源代码中没有某些运行时间错误,而ADA
- Spark Toolset ,包括Spark Exciner - 基于Spark语言,ADA的子集。