tree: b8a18043d364e8ad3b71e1e5fd5dc1309b625823 [path history] [tgz]
  1. build-all.sh
  2. dns_message_received.c
  3. dns_message_received.sh
  4. dns_message_received.xcconfig
  5. dns_wire_parse.c
  6. dns_wire_parse.sh
  7. dns_wire_parse.xcconfig
  8. DNSMessageToString.c
  9. DNSMessageToString.sh
  10. DNSMessageToString.xcconfig
  11. fuzzer.xcconfig
  12. icmp_callback.c
  13. icmp_callback.sh
  14. icmp_callback.xcconfig
  15. mDNS_snprintf.c
  16. mDNS_snprintf.sh
  17. mDNS_snprintf.xcconfig
  18. README.md
  19. setrdata.c
  20. setrdata.sh
  21. setrdata.xcconfig
  22. upload.sh
mDNSMacOSX/Tests/Fuzzing/README.md

mDNS Fuzzer

This directory contains several fuzzers for the mDNS project in mDNSMacOSX/Tests/Fuzzing

Each fuzzer is named after the routine that it fuzzes.

  • dns_wire_parse
  • icmp_callback
  • mDNS_snprintf

Building

To build it, run the following command from the mDNSMacOSX directory:

$ cd mDNSMacOSX
$ Tests/Fuzzing/dns_wire_parse.sh

Running

To make things simple, you can add the Build/Products directory to your $PATH.

$ OUTPUT=$(echo $HOME/Library/Developer/Xcode/DerivedData/mDNSResponder-*/Build/Products/Debug)
$ export PATH=$OUTPUT:$PATH

Create a corpus directory to store fuzzer test-cases, and an

$ mkdir corpus
$ fuzz-dns-wire-parse corpus

To reproduce a crash, just pass it on the command line

$ fuzz-dns-wire-parse crash-095ab8b59498220df930c19e80fd692a1eebaf8c