Skip to content

Differential Fuzzing of Bitcoin implementations and libraries

Notifications You must be signed in to change notification settings

brunoerg/bitcoinfuzz

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

Differential Fuzzing of Bitcoin implementations and libraries

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •