D2PFuzz is a fuzzer tool for analyze the Ethernet DevP2P protocol. It is able to generate data corresponding to various sub-protocols including discv4 (e.g., Ping, Pong, etc.), discv5, rlpx, and eth according to the specification of Ethernet network communication protocols. and constructs data sequences according to the chain state and time, and adds mutation functions to them to detect the security of Ethernet network communication protocols.
Introduction of some files and directories:
README.md
: basic information about D2PFuzzgenerator/
: Generator tool for fuzzerd2p/
: Ethereum devp2p protocol relatedfuzzing/
: Mutation tools used in fuzz testingfuzzer
: Fuzzer testing toolfiller
: Data fill toolutils/
: External Toolkittest/
: Test Data
You need to have golang and go-ethereum installed
# Clone the repo to a place of your liking using
git clone git@github.com:AgnopraxLab/D2PFuzz.git
# Enter the repo
cd D2PFuzz
# Build the binary
go build
# Run the generator
./D2PFuzz generator
# Run the bench
./D2PFuzz bench
# Run the fuzzer
./D2PFuzz run
Package generation tests can be performed with this tool
Start Fuzzer for DevP2P
Start Benchmarking for DevP2P