Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
bin
 
 
etc
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

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 git@github.com: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

Packages

No packages published

Languages

You can’t perform that action at this time.