静态分析工具大集合

摘自http://t.cn/Rfc4sr3

静态程序分析(Static program analysis)是指在不运行计算机程序的条件下,进行程序分析的方法。有些程序分析需要在程序运行时才能进行,这种程序分析称为动态程序分析。大部分的静态程序分析的对象是针对特定版本的源代码,也有些静态程序分析的对象是目标代码。静态程序分析一词多半是指配合静态程序分析工具进行的分析,人工进行的分析一般称为程序理解或代码审查。 — 维基百科

这是一个静态分析工具大集合,其中[OSS]代表开源软件,[PROPRIETARY]代表付费软件,欢迎各位补充。

C/C++

CMetrics[OSS] – 测算C文件的大小及复杂性

cqmetrics[OSS] – C代码的质量度量工具

clang-tidy[OSS] – clang静态分析

cppcheck[OSS] – C/C++代码静态分析

flawfinder[OSS] – 寻找可能存在的安全漏洞

flint++[OSS] – 跨平台, 无依赖端口的flint, 由C++程序开发,Facebook也在用

oclint[OSS] – C/C++代码静态分析

splint[OSS] – C/C++代码静态分析

tis-interpreter[OSS] – 由标准C写的一款用于寻找敏感bug的解释器

vera++[OSS] – Vera++是一个可用于验证,分析以及变换C++源代码的可编程工具

C

Code Analysis Rule Collection[OSS] – 包含一组特征, 代码修复以及在Microsoft .NET编译器平台”Roslyn”进行了重构

code-cracker[OSS] – 一款适用于C#和VB的分析库,且使用Roslyn进行重构, 代码分析

CSharpEssentials[OSS] – C# Essentials是一个Roslyn特征分析程序集合, 代码修复以及进行重构让其更能适应C# 6语言的特性

Designite[PROPRIETARY] – Designite是一款设计质量评估工具,测算各种各样的代码质量度量以及趋势分析

Gendarme[OSS] – Gendarme 检测包含在ECMA CIL 格式 (Mono and .NET)中的项目以及函数库,寻找出代码中会出现的一些常见问题(编译器一般不会检测的问题)

.NET Analyzers[OSS] – 一个专注于开发分析器的组织(特征, 代码修复, 重构) ,使用.NET编译平台

SonarLint for Visual Studio[OSS] – SonarLint是Visual Studio 2015中的一个扩展,其支持向开发者动态反馈新bug以及将质量问题注入.NET代码

Refactoring Essentials[OSS] – Visual Studio 2015扩展用于C#以及VB.NET重构, 提供有关代码质量的建议

ReSharper[PROPRIETARY] – 扩展Visual Studio支持动态代码检测C#, VB.NET, ASP.NET, JavaScript, TypeScript以及其他技术

VSDiagnostics[OSS] – 一个基于Roslyn且集成了VS的静态分析器集合

Wintellect.Analyzers[OSS] – Wintellect写的.NET编译平台(“Roslyn”) 特征分析器以及代码修复工具

容器

clair[OSS] – 用于容器的漏洞静态分析

collector[OSS] – 容器内运行任意脚本,然后收集可用信息

Haskell Dockerfile Linter[OSS] – 一款智能Dockerfile linter,可以帮助你构建Docker镜像最佳实践

CSS

CSS Stats[OSS] – 在样式表中潜在有趣的统计数据

Parker[OSS] – 样式表分析工具

scsslint[OSS] – SCSS文件小工具

Specificity Graph[OSS] – CSS特征性图表生成器

Stylelint– [OSS] – SCSS/CSS文件小工具

Elixir

credo[OSS] – 一款专注于教学以及代码相容性的静态代码分析工具

Go

dingo-hunter[OSS] – 用于在Go程序中找出deadlocks的静态分析器

flen[OSS] – 在Go程序包中获取函数长度信息

go/ast[OSS] – Package ast声明了关于Go程序包用于表示语法树的类型

gocyclo[OSS] – 在Go源代码中测算cyclomatic函数复杂性

Go Meta Linter[OSS] – 同时Go lint工具且工具的输出标准化

go vet[OSS] – 检测Go源代码并报告可疑的构造

ineffassign– 在Go代码中检测无效赋值

safesql[OSS] – Golang静态分析工具,防止SQL注入

Groovy

CodeNarc[OSS] – 一款Groovy源代码静态分析工具, 授权检验和执行大多数编码编著以及最佳实践。

Haskell

HLint[OSS] – HLint是一款提高Haskell代码质量的工具

HTML

HTMLHint[OSS] – HTML静态代码分析工具

HTML Inspector[OSS] – HTML Inspector是一款代码质量工具,用以帮助你的团队写出更好的代码

Java

checkstyle[OSS] – 检测Java源代码以坚持一个代码标准或者一组验证规则(最佳实践)

ckjm[OSS] – 通过处理编译好的Java文件的字节码来计算Chidamber和Kemerer面向对象度量工具

Error-prone[OSS] – 随着编译时错误信息捕获Java常见的错误

fb-contrib[OSS] – FindBugs的一个插件,支持额外的bug检测

Findbugs[OSS] – FindBugs是一个从Java程序中找到bugs的工具,它的查找模式可能存在误差

find-sec-bugs[OSS] – IDE/Sonarcube插件用于Java web应用程序的安全审计

HuntBugs[OSS] – 基于Procyon编译工具的字节码静态分析器,旨在取代FindBugs.

PMD[OSS] – Java源代码分析器

JavaScript

aether[OSS] – 程序集, 分析, 标准化, 重构, 沙盒, 运行, 单步调试, 以及可视化

ClosureLinter[OSS] – 确保你项目的所有JavaScript代码遵循Google Javascript样式指南,同时他还可以自动修复许多常见错误

complexity-report[OSS] – 针对JavaScript项目的软件复杂性分析

escomplex[OSS] – 针对JavaScript系的抽象语法树软件复杂性分析

eslint[OSS] – 在Javascript代码中对模式进行识别及报告

Esprima[OSS] – ECMAScript解析标准,支持多用途分析

quality[OSS] – 零配置代码和模块化程序集

jshint[OSS] – 检测JavaScript代码中的错误及潜在问题,并执行你的团队约定好的编码方式。

JSLint[PROPRIETARY] – JavaScript代码质量工具

plato[OSS] – JavaScript可视化源代码复杂度

yardstick[OSS] – Javascript代码度量工具

XO[OSS] – 执行严格的代码风格.

Lua

luacheck[OSS] – Lua代码静态分析工具

Makefile

portlint[OSS] – FreeBSD及DragonFlyBSD端口目录验证器

Packages

lintian[OSS] – Debian程序包静态分析工具

Perl

Perl::Critic[OSS] – Perl源代码最佳实践

PHP

DesignPatternDetector[OSS] – 在PHP代码中检测设计模式

deptrac[OSS] – 在软件层之间执行依赖规则

exakat[OSS] – PHP自动化代码审查引擎

GrumPHP[OSS] – 检测每次提交的代码

phan[OSS] – 来自etsy的现代化静态分析器

php7cc[OSS] – PHP 7 兼容性检查器

php7mar[OSS] – 帮助开发者快速将代码移植到PHP 7

phpcpd[OSS] – 针对PHP代码的复制/粘贴检测工具.

PHP_CodeSniffer[OSS] – 检测违反定义的编码标准

phpdcd[OSS] – 针对PHP代码的无作用代码检测工具

PhpDependencyAnalysis[OSS] – 为项目创建一个依赖关系图标

Php Inspections (EA Extended)[OSS] – PHP静态代码分析工具

phpsa[OSS] – PHP静态分析工具

PHPMD[OSS] – 在你的代码中寻找可能出现的bug

PhpMetrics[OSS] – 预测代码的复杂性度量

PHPQA[OSS] – 一款用于运行QA工具(phploc, phpcpd, phpcs, pdepend, phpmd, phpmetrics)的工具

PHP Refactoring Browser[OSS] – 重构助手

PHP-Token-Reflection[OSS] – 函数库模拟PHP内部反射

PHP-Parser[OSS] – PHP写的一款PHP解析器

RIPS[OSS] – 一款用于PHP脚本漏洞的静态源代码分析工具

Tuli[OSS] – 静态分析引擎

Python

bandit[OSS] – 在Python代码中寻找常见安全问题的工具

jedi[OSS] – Python自动化/静态分析函数库

mccabe[OSS] – 检测McCabe复杂性

mypy[OSS] – Python静态类型分析工具,旨在结合动态类型及静态类型的优点

py-find-injection[OSS] – 从Python代码中寻找SQL注入漏洞

pycodestyle[OSS] – (formerly pep8) Python风格检查工具

pydocstyle[OSS] – Python docstring风格检查工具

pyflakes[OSS] – 检测Python源文件中的错误

pylint[OSS] – 寻找程序错误, 有助于执行编码标准以及嗅探代码异味. 此外它还包括pyreverse (UML图表生成器)以及symilar (一个类似的检测工具). 以及可选的扩展

pyroma[OSS] – 评估Python项目,并列出问题帮助提高代码质量

vulture[OSS] – 寻找Python代码中未使用的类,函数,变量

xenon[OSS] – 使用radon监控代码复杂度

R

lintr[PROPRIETARY] – R静态代码分析工具

Ruby

brakeman[OSS] – Ruby on Rails应用的一个静态分析安全漏洞扫描工具

cane[OSS] – 代码质量标准检查

dawnscanner[OSS] – ruby写的静态分析安全扫描器,支持Sinatra, Padrino以及Ruby on Rails框架

flay[OSS] – Flay 分析代码结构相似之处

flog[OSS] – Flog在一个易于阅读的报告中点出大多数不合规则的代码,评价分数越高,代码就越糟糕

laser[OSS] – Ruby代码的风格小工具集和静态分析工具

Mondrian[OSS] – 静态分析及重构工具

pelusa[OSS] – 静态分析Lint-type工具用以改善你的Ruby面向对象代码

quality[OSS] – 使用社区工具在你的代码中运行质量检测

reek[OSS] – Ruby代码异味检测工具

rubocop[OSS] – Ruby静态代码分析工具, 基于Ruby社区风格指南

rubycritic[OSS] – Ruby代码质量报告工具

ruby-lint[OSS] – Ruby静态代码分析工具

SandyMeter[OSS] – 用于检测遵循Sandi Metz规则的Ruby代码的静态分析工具

Rust

clippy[OSS] – 一个代码小工具集用于捕获常见错误,以及提高Rust代码质量

electrolysis[OSS] – 验证Rust程序的工具

herbie[OSS] – 当使用一个不稳定的浮点表达式时增加警告或者错误

linter-rust[OSS] – Atom扩展,列出你的Rust文件。使用rustc和cargo

rustfix[OSS] – 读取和应用由rustc提出的建议

Shell

shellcheck[OSS] – ShellCheck, 一个精通分析工具,为bash/sh shell脚本提出警告和建议

SQL

sqlint[OSS] – 简单的SQL工具集

Swift

SwiftLint[OSS] – 执行Swift编码风格和约定的工具

Tailor[OSS] – 一个用Swift程序语言写的静态分析工具及源代码工具集

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,616评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,020评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,078评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,040评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,154评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,265评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,298评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,072评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,491评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,795评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,970评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,654评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,272评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,985评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,223评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,815评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,852评论 2 351

推荐阅读更多精彩内容

  • 简介 本文是一个静态代码分析工具的清单,但是为公司产品,需要付费使用。共有37个公司,有些公司包含多个工具。其中2...
    烟花诗人阅读 3,578评论 0 0
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,914评论 25 707
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,644评论 18 139
  • 无论何时你回忆这些记录,甚至是从今以后的一年里回顾这些记录,你略微一瞥就能看出哪些想法和语言是作者的和哪些是你的。...
    柳涛虹阅读 70评论 0 1
  • 1.不因为他的家财万贯 不因为他的学识丰富 只是因为听见他的声音 或只是见了一眼 心里的蔷薇花都盛开了 之后所有的...
    灿妮白阅读 243评论 0 0