American Fuzzy Lop and American Fuzzy Lop++
American Fuzzy Lop (AFL) represents a piece of history – though its code base has not been updated for 2 years, it was open sourced a while ago. For this reason, a group of brave hackers decided to fork it and develop AFL++, which offers very advanced features with respect to the original version and has taken over AFL within the open source community.
Advantages of AFL and AFL++ versus my own fuzzer
Michael Zalewski (@lcamtuf) developed American Fuzzy Lop (also a breed of rabbits) while working at Google. AFL is used by Google to test its software for code coverage and bug finding. AFL is a program that incorporates the best fuzzing practices and evolutive algorithms. An evolutive algorithm allows mutating the input according to a reward function, which is normally based on the program experience (i.e., the output of the previous execution). Rewriting such software from scratch would surely be very hard given its maturity. Nonetheless...