代码检查开源框架-汇总

举报
SamDong 发表于 2021/08/12 23:58:22 2021/08/12
【摘要】 静态分析工具的最大好处就是在软件开发流程的早期阶段发现致命的缺陷。

代码检查开源框架-汇总

概述

静态分析工具的最大好处就是在软件开发流程的早期阶段发现致命的缺陷。目前行业内正在被使用的静态代码分析工具如下:

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

官方网站:http://www.brics.dk/TAJS

是否商用:否

TAJS是是一个Java类型分析器。

24.IncA

官方网站:https://github.com/szabta89/IncA

是否商用:否

IncA是一个程序分析框架。一个用于定义程序分析的DSL,运行时系统以增量方式评估程序分析,以实现IDE中实时反馈所需的性能。

参考

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

举报
请填写举报理由
0/200