Update README

pull/21/head
Josselin 6 years ago
parent 533f94ddfa
commit 6fb297b69e
  1. 53
      README.md
  2. 6
      docs/PRINTERS.md

@ -1,47 +1,46 @@
# Slither, the Solidity source analyzer
[![Build Status](https://travis-ci.com/trailofbits/slither.svg?token=JEF97dFy1QsDCfQ2Wusd&branch=master)](https://travis-ci.com/trailofbits/slither)
Slither is a Solidity static analysis framework written in Python 3. It provides an API to easily manipulate Solidity code. In addition to exposing a Solidity contracts AST, Slither provides many APIs to quickly check local and state variable usage.
Slither is a Solidity static analysis framework written in Python 3. It provides an API to easily manipulate Solidity code, and integrates vulnerabilities detectors.
# Features
With Slither you can:
- Detect vulnerabilities
- Speed up your understanding of code
- Build custom analyses to answer specific questions
- Quickly prototype a new static analysis techniques
- **Detect vulnerabilities**
- **Speed up your understanding** of code
- **Build custom analyses** to answer specific questions
- **Quickly prototype** a new static analysis techniques
## How to install
Slither can analyze contracts written with Solidity > 0.4.
Slither uses Python 3.6.
Some of Slither detectors are open-source, [contact us](https://www.trailofbits.com/contact/) to get access to additional detectors.
# How to install
```bash
$ python setup.py install
```
Slither uses Python 3.6.
You may also want solc, the Solidity compiler, which can be installed using homebrew:
## Using Pip
```bash
$ brew update
$ brew upgrade
$ brew tap ethereum/ethereum
$ brew install solidity
$ brew linkapps solidity
```
$ pip install slither-analyzer
```
or with aptitude:
## Using Gihtub
```bash
$ sudo add-apt-repository ppa:ethereum/ethereum
$ sudo apt-get update
$ sudo apt-get install solc
$ git clone https://github.com/trailofbits/slither.git & cd slither
$ python setup.py install
```
## How to use
Slither requires [solc](https://github.com/ethereum/solidity/), the Solidity compiler.
# How to use
```
$ slither file.sol
```
For example:
```
$ slither examples/bugs/uninitialized.sol
[..]
@ -62,9 +61,7 @@ Check | Purpose | Impact
`--detect-reentrancy`| Detect if different pragma directives are used | High
`--detect-solc-version`| Detect if an old version of Solidity is used (<0.4.23) | Informational
A high prioritization check is likely to be a true positive with a severe impact.
### Exclude analyses
## Exclude analyses
* `--exclude-informational`: Exclude informational impact analyses
* `--exclude-low`: Exclude low impact analyses
* `--exclude-medium`: Exclude medium impact analyses
@ -86,7 +83,11 @@ A high prioritization check is likely to be a true positive with a severe impact
For more information about printers, see the [Printers documentation](docs/PRINTERS.md)
## How to create analyses
See the [API documentation](https://github.com/trailofbits/slither/wiki/API-examples), and the [detector documentation](https://github.com/trailofbits/slither/wiki/Adding-a-new-detector).
## License
# License
Slither is licensed and distributed under the AGPLv3 license. [Contact us](mailto:opensource@trailofbits.com) if you're looking for an exception to the terms.

@ -3,7 +3,7 @@
Slither allows printing contracts information through its printers.
## Quick Summary
`slither.py file.sol --print-quick-summary`
`slither file.sol --printer-quick-summary`
Output a quick summary of the contract.
Example:
@ -13,7 +13,7 @@ $ slither vulns/0x01293cd77f68341635814c35299ed30ae212789e.sol --printer-quick-s
<img src="imgs/quick-summary.png" width="300">
## Summary
`slither.py file.sol --print-summary`
`slither file.sol --printer-summary`
Output a summary of the contract showing for each function:
- What are the visibility and the modifiers
@ -49,7 +49,7 @@ Inheritances:: []
Output a graph showing the inheritance interaction between the contracts.
Example:
```
$ slither examples/DAO.sol --print-inheritance
$ slither examples/DAO.sol --printer-inheritance
[...]
INFO:PrinterInheritance:Inheritance Graph: examples/DAO.sol.dot
```

Loading…
Cancel
Save