Peach is a SmartFuzzer that is capable of performing both generation and mutation based fuzzing.
There are typically two methods for producing fuzz data that is sent to a target, Generation or Mutation. Generational fuzzers are capable of building the data being sent based on a data model provided by the fuzzer creator. Sometimes this is simple and dumb as sending random bytes, or much smarter by knowing good values and combining them in interesting ways.
Mutation on the other hand starts out with a known good “template” which is then modified. However, nothing that is not present in the “template” or “seed” will be produced. For example, if a file format specified 18 types of chunks or optional data segments and the “template”/”seed” only used four (4) of them, a mutational based fuzzer would never generate the other chunks not present only modify the chunks it is presented with.
Peach requires the creation of PeachPit files that define the structure, type information, and relationships in the data to be fuzzed. It additionally allows for the configuration of a fuzzing run including selecting a data transport (Publisher), logging interface, etc.
Peach Pit files are XML files that contain all of the information needed for Peach to perform a fuzzing run. When you fuzz something with Peach you are creating a Peach Pit file.
Peach has been under active development for five years and is in its second major version.
You can read the Peach Quickstart here to get going.
Requirements
- For Windows install Debugging Tools for Windows (download)
- For Linux Install Python 2.5 (2.6 is OK)
You can download Peach here:
Windows – x86 Installer, x64 Installer
Linux – Peach-2.3.6-src.zip
Or read more here.