代码检查开源框架-汇总
代码检查开源框架-汇总
概述
静态分析工具的最大好处就是在软件开发流程的早期阶段发现致命的缺陷。目前行业内正在被使用的静态代码分析工具如下:
1.Soot
官方网站:https://soot-oss.github.io/soot/
是否商用:否
Soot 是一个 Java 优化框架,它能够用来分析、检测、优化及可视化 Java 和 Android 应用程序。
2.Wala
官方网站:https://github.com/wala/WALA
是否商用:否
Wala是一个Java字节码和JavaScript的静态分析框架。
WALA核心功能:
- Java的系统类型和类的层次结构分析
- 源语言框架支持java和javascript
- 过程间数据流分析(RHS的求解器)
- 基于上下文敏感的切片
- 指针分析与调用图构造
- 基于SSA的寄存器转换语言IR
- 迭代数据流的总体框架
- 通用分析实用程序和数据结构
- 一个字节码库(Shrike)和一个java动态负荷时间仪表库(DILA)
3.Doop
官方网站:https://github.com/plast-lab/doop-mirror
是否商用:否
Doop是一个 Java指针分析和污点分析框架。
4.Chord
官方网站:https://www.seas.upenn.edu/~mhnaik/chord/user_guide/index.html
是否商用:否
Chord是一个 Java程序分析框架。
5.Spoon
官方网站:https://github.com/INRIA/spoon
是否商用:否
Spoon 是一个用来对 Java 源码进行语法分析的库,可将 Java 源码文件解析成 AST 语法树结构,并提供强大的分析和转化的 API,支持最新的 Java 11~15。
6.JavaParser
官方网站:https://github.com/javaparser/javaparser
是否商用:否
JavaParser是一个用来对 Java 源码进行语法分析的库,包含Java (1-15)解析器和Java抽象语法树。
7.Phasar
官方网站:https://phasar.org/
是否商用:否
PhASAR是一个基于LLVM的静态分析框架,用户可以进行数据流分析,框架会帮助进行指向分析、调用图构建。
8.Joern
官方网站:https://joern.io/
是否商用:否
Joern是一个基于代码属性图的C/C++开源代码分析平台。
9.SVF
官方网站:http://svf-tools.github.io/SVF/
是否商用:否
SVF是一个静态工具,它支持C和C++程序的可扩展和精确的过程间依赖分析。SVF允许迭代执行值流构造和指针分析,从而为两者提供越来越高的精度。
10.Java PathFinder
官方网站:http://javapathfinder.sourceforge.net/
是否商用:否
Java PathFinder (JPF) is a system to verify executable Java bytecode programs.
11.Eclipse CDT
官方网站:https://www.eclipse.org/cdt/
是否商用:否
Eclipse C/C++ development tools
12.Eclipse JDT
官方网站:https://www.eclipse.org/jdt/
是否商用:否
Eclipse Java development tools
13.Eclipse PDT
官方网站:https://www.eclipse.org/pdt/
是否商用:否
Eclipse PHP development tools
14.IKOS
官方网站:https://github.com/NASA-SW-VnV/ikos
是否商用:否
IKOS(Inference Kernel for Open Static Analyzers)是基于抽象解释理论的C/C++静态分析器。
15.Clang Static Analyzer
官方网站:http://clang-analyzer.llvm.org/
是否商用:否
这是一个开源工具,可以用来分析C,C++代码。它使用clang库,是一个可重用的组件,可以被多个客户端使用。
16.LLVM-Anderson
官方网站:https://github.com/Lancern/llvm-anderson
是否商用:否
本项目在LLVM编译器平台上实现了著名的流不敏感点到分析算法,即Anderson算法。
17.Joern
官方网站:https://github.com/joernio/joern
是否商用:否
基于代码属性图的C/C++/Java/Binary开源代码分析平台。
18.DG
官方网站:https://github.com/mchalupa/dg
是否商用:否
DG是一个包含用于程序分析的各种位的库。然而,这个库的主要动机是程序切片。该库包含指针分析、数据依赖分析、控制依赖分析和LLVM位码between value之间关系的分析的实现。
19.LLVM
官方网站:https://llvm.org
是否商用:否
LLVM是构架编译器的框架系统,以C++编写而成,用于优化以任意程序语言编写的程序的编译时间(compile-time)、链接时间(link-time)、运行时间(run-time)以及空闲时间(idle-time)。
LLVM计划启动于2000年,最初由美国UIUC大学的Chris Lattner博士主持开展。2006年Chris Lattner加盟Apple Inc.并致力于LLVM在Apple开发体系中的应用。
20.PHP-Parser
官方网站:https://github.com/nikic/PHP-Parser
是否商用:否
PHP Parser是一个用来对PHP源码进行语法分析的库。
21.SeaHorn
官方网站:http://seahorn.github.io/
是否商用:否
SeaHorn是一个形式化验证框架。
22.Crab
官方网站:https://github.com/seahorn/crab
是否商用:否
Crab是一个基于抽象解释的静态分析框架。
23.TAJS
是否商用:否
TAJS是是一个Java类型分析器。
24.IncA
官方网站:https://github.com/szabta89/IncA
是否商用:否
IncA是一个程序分析框架。一个用于定义程序分析的DSL,运行时系统以增量方式评估程序分析,以实现IDE中实时反馈所需的性能。
参考
- 点赞
- 收藏
- 关注作者
评论(0)