- Clone the evm-fuzzer repository and download the submodules
git clone https://github.com/ogechno/evm-fuzzer
cd evm-fuzzer
git submodule update --recursive
- Build the docker image using
./tools/run_docker.sh
- Build evm-fuzzer inside the running docker image
./tools/build_and_run.sh
Add new testcase to corpus:
./tools/convert.sh <bytecode in hex> ../fuzzer/coprus/<filename>
Remove duplicates from the corpus:
cd fuzzer/corpus
find . -name '*-[0-9]*' -delete
Make vim not append \n at the end of the file do:
:set noendofline and :set nofixendofline
- Update evmone and geth to latest version
- Don't create new vm for every testcase
- don't add dup testcases to corpus
- split up harness
- add nethermind and besu support
- Setup LibAFL with new Components
- Define custom objective
- DiffExecutor, DiffObserver
- multi transaction
- go-fuzz-build support
- Geth harness clean up with Config and NewEnv (runtime)
- tmin corpus minimizer
- Grammar Mutator