Skip to content
A tool that detects honeypots in Ethereum smart contracts 🍯 (USENIX 2019).
Python Dockerfile
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 Initial commit Feb 7, 2019
honeybadger Initial commit Feb 7, 2019
results/evaluation Initial commit Feb 7, 2019
tools Initial commit Feb 7, 2019
.gitignore Added quick start via docker hub image Feb 8, 2019
Dockerfile Initial commit Feb 7, 2019
README.md
honeybadger_logo.png Initial commit Feb 7, 2019

README.md

HoneyBadger

An analysis tool to detect honeypots in Ethereum smart contracts 🍯. HoneyBadger is based on Oyente. Our paper can be found here.

Quick Start

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

To open the container, install docker and run:

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

To evaluate a simple honeypot inside the container, run:

python honeybadger/honeybadger.py -s honeypots/MultiplicatorX3.sol

and you are done!

Custom Docker image build

docker build -t honeybadger .
docker run -it honeybadger: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.7.1.

Download the source code of version z3-4.7.1

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

Evaluate Ethereum smart contract honeypot

python honeybadger.py -s <contract filename>

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

You can’t perform that action at this time.