Original:
Mutants:
Header Size:
Begin Processing
(Results will go here upon execution)
Fuzzaton Heatmap
├── What is Fuzzing?
│ ├── Fuzzing is the process of taking a file and randomly modifying certain bytes.
│ ├── The goal is to see how much can be modified while still being readable.
│ └── It is preferable for a program to "give up" rather than read corrupted data!
├── What is this tool?
│ ├── This tool allows you to identify trends between mutants exhibiting certain traits against a single "original" file.
│ ├── The user specifies the header size in bytes
│ │ └── This tool only supports files that have metadata exclusively at the start of the file
│ └── The program displays the results on a per-byte basis
├── Reading the results
│ ├── Each entry denotes a particular byte (in hexadecimal)
│ ├── The reder the byte, the LESS times it was modified compared to the original
│ └── The greener the byte, the MORE times it was modified compared to the original
└── Example Use Cases
├── Finding bytes to NOT fuzz
│ ├── Comparing an original against only readable mutants will reveal obvious "holes" of red
│ ├── These holes represent bytes that cannot be modified while still producing readable output
│ └── This information allows you to curate your fuzzing tool to never fuzz those particular bytes
│ └── Doing so produces more useful mutants!
└── Identifying bytes the result in particular behavior
├── Comparing and original against only files the exhibit particular behavior will reveal what bytes produce it
└── This information could allow you to curate your fuzzing tool to ONLY fuzz those particular bytes
└── Doing so allows you to check your theory!
Accompanying Notes/Instructions for the class this tool was made for