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 [email protected]:AgnopraxLab/D2PFuzz.git
# Enter the repo
cd D2PFuzz
# Build the binary
go build
# Setting environment
./D2PFuzz setenv
# Run the generator
./D2PFuzz generator
# Run the fuzzer
./FuzzyVM runConfigure Fuzz's runtime environment and related configurations
Package generation tests can be performed with this tool