SonicStark / microBug

Easily debug and challenge your fuzzer

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

microBug

A concise, flexible, path- and bug-rich program is helpful for debugging those fuzzers under development.

After adding some new features to a fuzzer, we need to verify if it works as expect. Usually Unit Test is a good choice. You can also attach a debugger to the fuzzer process for a quick view, but waiting until a breakpoint is hit 2000 YEARS LATER would be a nightmare. Then microBug is here to help, which is easy to be explored by most fuzzers.

What's more, microBug can be built into various versions. It is helpful when you debug some tools related with symbols and sanitizers (i.e. a Pin tool).

To build microBug, use build.sh. The binaries will locate at build/.

If argc > 1, it will try to use the last parameter as the path of input file. If fails to open, it will read from stdin as a fallback method. If argc <= 1, it will read input from stdin. If you see [+] Accepting input from '[STDIN]' when running the target manually, you should press CTRL+D to send EOF after typing your things. Otherwise it would continue to receive input because there is no EOF to close stdin.

Testcases locate at ./corpus:

  • ./corpus/norm/ - normal, not trigger any vulnerabilities
  • ./corpus/wiki/ - trigger vulnerabilities in wiki_*
  • ./corpus/hits/ - trigger vulnerabilities in hit_*

About

Easily debug and challenge your fuzzer

License:Apache License 2.0


Languages

Language:C 48.1%Language:C++ 37.3%Language:Shell 14.6%