Skip to content
A tool to detect integer bugs in Ethereum smart contracts (ACSAC 2018).
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
datasets
osiris
results
tests
tools
.gitignore
Dockerfile
README.md

README.md

Osiris

An analysis tool to detect integer bugs in Ethereum smart contracts. Osiris is based on Oyente.

Quick Start

A container with the dependencies set up can be found here.

To open the container, install docker and run:

docker pull christoftorres/osiris && docker run -i -t christoftorres/osiris

To evaluate the SimpleDAO contract inside the container, run:

python osiris/osiris.py -s datasets/SimpleDAO/SimpleDAO_0.4.19.sol

and you are done!

Custom Docker image build

docker build -t osiris .
docker run -it osiris:latest

Full installation

Install the following dependencies

solc

$ sudo add-apt-repository ppa:ethereum/ethereum
$ sudo apt-get update
$ sudo apt-get install solc

evm from go-ethereum

  1. https://geth.ethereum.org/downloads/ or
  2. By from PPA if your using Ubuntu
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository -y ppa:ethereum/ethereum
$ sudo apt-get update
$ sudo apt-get install ethereum

z3 Theorem Prover version 4.6.0.

Download the source code of version z3-4.6.0

Install z3 using Python bindings

$ python scripts/mk_make.py --python
$ cd build
$ make
$ sudo make install

Requests library

pip install requests

web3 library

pip install web3

pysha3 library

pip install pysha3

Evaluating Ethereum Contracts

#evaluate a local solidity contract
python osiris.py -s <contract filename>

Run python osiris.py --help for a complete list of options.

You can’t perform that action at this time.