Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mariusvanderwijden/fuzzyvm
Implementation of a differential fuzzer for Ethereum Virtual Machines
https://github.com/mariusvanderwijden/fuzzyvm
Last synced: 1 day ago
JSON representation
Implementation of a differential fuzzer for Ethereum Virtual Machines
- Host: GitHub
- URL: https://github.com/mariusvanderwijden/fuzzyvm
- Owner: MariusVanDerWijden
- License: lgpl-2.1
- Created: 2020-09-18T11:30:18.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2024-09-01T14:18:32.000Z (2 months ago)
- Last Synced: 2024-11-06T09:06:34.644Z (8 days ago)
- Language: Go
- Size: 4.31 MB
- Stars: 89
- Watchers: 4
- Forks: 19
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# FuzzyVM [fuzzɛvm]
A framework to fuzz Ethereum Virtual Machine implementations.
FuzzyVM creates state tests that can be used to differential fuzz EVM implementations against each other.
It only focus on the test generation part, the test execution is handled by [goevmlab](https://github.com/holiman/goevmlab).## Environment
You need to have golang and go-ethereum installed## Install instructions
```shell
# Clone the repo to a place of your liking using
git clone [email protected]:MariusVanDerWijden/FuzzyVM.git
# Enter the repo
cd FuzzyVM
# Build the binary
go build
# Create an initial corpus
./FuzzyVM corpus --count 100
# Run the fuzzer
./FuzzyVM run
```# Corpus
It makes sense to create an initial corpus in order to improve the efficiency of the fuzzer.
You can generate corpus elements with `./FuzzyVM corpus --count N`, which will generate `N` corpus elements.You might create corpus that is to big, you can minimize your corpus with `./FuzzyVM minCorpus`.
# Bench
You can run a benchmark with `./FuzzyVM bench`.