Skip to content

A tool to detect integer bugs in Ethereum smart contracts (ACSAC 2018).

Notifications You must be signed in to change notification settings

christoftorres/Osiris

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

A tool to detect integer bugs in Ethereum smart contracts (ACSAC 2018).

Resources

Stars

Watchers

Forks

Packages

No packages published