All Projects → ropas → Sparrow

ropas / Sparrow

Licence: other
The Sparrow Static Analyzer

Programming Languages

c
50402 projects - #5 most used programming language
ocaml
1615 projects

Projects that are alternatives of or similar to Sparrow

rust-lock-bug-detector
Statically detect double-lock & conflicting-lock bugs on MIR
Stars: ✭ 39 (-59.37%)
Mutual labels:  static-analyzer
Prealloc
prealloc is a Go static analysis tool to find slice declarations that could potentially be preallocated.
Stars: ✭ 419 (+336.46%)
Mutual labels:  static-analyzer
Sonarondocker
🐳 📡 Docker way of running SonarQube + any DB
Stars: ✭ 25 (-73.96%)
Mutual labels:  static-analyzer
sonar-gherkin-plugin
SonarQube Cucumber Gherkin Analyzer
Stars: ✭ 33 (-65.62%)
Mutual labels:  static-analyzer
Cwe checker
cwe_checker finds vulnerable patterns in binary executables
Stars: ✭ 372 (+287.5%)
Mutual labels:  static-analyzer
Phpdoc Parser
Next-gen phpDoc parser with support for intersection types and generics
Stars: ✭ 569 (+492.71%)
Mutual labels:  static-analyzer
nakedret
nakedret is a Go static analysis tool to find naked returns in functions greater than a specified function length.
Stars: ✭ 82 (-14.58%)
Mutual labels:  static-analyzer
Codechecker
CodeChecker is an analyzer tooling, defect database and viewer extension for the Clang Static Analyzer and Clang Tidy
Stars: ✭ 1,209 (+1159.38%)
Mutual labels:  static-analyzer
Stan
🕵️ Haskell STatic ANalyser
Stars: ✭ 386 (+302.08%)
Mutual labels:  static-analyzer
Sonar Jproperties Plugin
SonarQube Java Properties Analyzer
Stars: ✭ 5 (-94.79%)
Mutual labels:  static-analyzer
groot
Static verification tool for DNS zone files
Stars: ✭ 60 (-37.5%)
Mutual labels:  static-analyzer
Phpstan Doctrine
Doctrine extensions for PHPStan
Stars: ✭ 338 (+252.08%)
Mutual labels:  static-analyzer
Sonarjs
SonarSource Static Analyzer for JavaScript and TypeScript
Stars: ✭ 696 (+625%)
Mutual labels:  static-analyzer
opem
OPEM (Open Source PEM Fuel Cell Simulation Tool)
Stars: ✭ 107 (+11.46%)
Mutual labels:  static-analyzer
Cfmt
cfmt is a tool to wrap Go comments over a certain length to a new line.
Stars: ✭ 28 (-70.83%)
Mutual labels:  static-analyzer
eba
EBA is a static bug finder for C.
Stars: ✭ 14 (-85.42%)
Mutual labels:  static-analyzer
Sonar Dotnet
Code analyzer for C# and VB.NET projects https://redirect.sonarsource.com/plugins/vbnet.html
Stars: ✭ 466 (+385.42%)
Mutual labels:  static-analyzer
Phpinspectionsea
A Static Code Analyzer for PHP (a PhpStorm/Idea Plugin)
Stars: ✭ 1,211 (+1161.46%)
Mutual labels:  static-analyzer
Pyc Cfg
Pyc-cfg is a pure python control flow graph builder for almost all Ansi C programming language.
Stars: ✭ 29 (-69.79%)
Mutual labels:  static-analyzer
Sonar Java
☕️ SonarSource Static Analyzer for Java Code Quality and Security
Stars: ✭ 745 (+676.04%)
Mutual labels:  static-analyzer

Sparrow

Sparrow is a state-of-the-art static analyzer that aims to verify the absence of fatal bugs in C source. Sparrow is designed based on the Abstract Interpretation framework and the analysis is sound in design. Sparrow adopts a number of well-founded static analysis techniques for scalability, precision, and user convenience. This is the academic version of Sparrow that is different from the commercial version.

Build Status

Linux MAC OSX
Build Status Build Status

Sparrow Dependencies

To build Sparrow, you need

Optionally, you need the following prerequisites to use machine-learning features

Install Sparrow with OPAM

The easiest way to install Sparrow is to use OPAM. Once you have cloned the source codes, run the build script to install the prerequisites and Sparrow:

$ git clone [email protected]:ropas/sparrow.git
$ cd sparrow
$ ./build.sh
$ eval `opam config env`

After that, you can directly run make or make install.

Optionally, you need to set up environment variables to use machine-learning features depending on the installation prefix.

$ export SPARROW_BIN_PATH= # PREFIX/bin
$ export SPARROW_DATA_PATH= # PREFIX/etc

For example, if you install Sparrow using OPAM:

$ export SPARROW_BIN_PATH=`opam config var sparrow:bin`
$ export SPARROW_DATA_PATH=`opam config var sparrow:etc`

Run the analysis

You can run Sparrow for buffer overflow detection on pre-processed C files. For example:

$ ./bin/sparrow test.i
# partially flow-sensitive analysis with degree [0-100]
$ ./bin/sparrow -pfs 10 test.i
# selectively unsound analysis with bugfinder level [0-2]
$ ./bin/sparrow -bugfinder 2 test.i
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].