Skip to content

Latest commit

 

History

History
66 lines (52 loc) · 2.05 KB

README.md

File metadata and controls

66 lines (52 loc) · 2.05 KB

bitcoinfuzz

Differential Fuzzing of Bitcoin implementations and libraries. Note this project is a WIP and might be not stable.

Installation

rust-bitcoin

cd modules/rustbitcoin
cd rust_bitcoin_lib && cargo build --release --target=aarch64-apple-darwin
cd .. && make
export CXXFLAGS="$CXXFLAGS -DRUST_BITCOIN"

Change the target according to your architecture. You may need to modify the Makefile as well.

rust-miniscript

cd modules/rustminiscript
cd rust_miniscript_lib && cargo build --release --target=aarch64-apple-darwin
cd .. && make
export CXXFLAGS="$CXXFLAGS -DRUST_MINISCRIPT"

mako

For the script_eval target, we recommend to get Mako from https://github.com/brunoerg/mako/tree/bitcoinfuzz since there are some checks that should be skipped for better fuzzing.

cd modules/mako
export MAKO_LIB_PATH="path/to/libmako.a"
make

Bitcoin Core

cd modules/bitcoin
make
export CXXFLAGS="$CXXFLAGS -DBITCOIN_CORE"
export BOOST_LIB_DIR="path/to/boost/"

Once the modules are compiled, you can compile bitcoinfuzz and execute it:

make
FUZZ=target_name ./bitcoinfuzz

Bugs/inconsistences/mismatches found by Bitcoinfuzz