IntelLabs / kAFL

A fuzzer for full VM kernel/driver targets
https://intellabs.github.io/kAFL/
MIT License
645 stars 87 forks source link

kafl gui is not working #221

Closed hyjun0407 closed 1 year ago

hyjun0407 commented 1 year ago
(.venv) zoodasa@HackMachine:~/kAFL$ kafl gui
Traceback (most recent call last):
  File "/home/zoodasa/kAFL/kafl/.venv/bin/kafl", line 11, in <module>
    load_entry_point('kafl-fuzzer', 'console_scripts', 'kafl')()
  File "/home/zoodasa/kAFL/kafl/fuzzer/kafl_fuzzer/__main__.py", line 34, in main
    args.func(settings)
  File "/home/zoodasa/kAFL/kafl/fuzzer/kafl_fuzzer/gui/__init__.py", line 814, in start
    curses.wrapper(main)
  File "/usr/lib/python3.8/curses/__init__.py", line 105, in wrapper
    return func(stdscr, *args, **kwds)
  File "/home/zoodasa/kAFL/kafl/fuzzer/kafl_fuzzer/gui/__init__.py", line 805, in main
    gui = GuiDrawer(settings.workdir, stdscr)
  File "/home/zoodasa/kAFL/kafl/fuzzer/kafl_fuzzer/gui/__init__.py", line 227, in __init__
    self.data = GuiData(workdir)
  File "/home/zoodasa/kAFL/kafl/fuzzer/kafl_fuzzer/gui/__init__.py", line 447, in __init__
    self.load_initial()
  File "/home/zoodasa/kAFL/kafl/fuzzer/kafl_fuzzer/gui/__init__.py", line 457, in load_initial
    self.config = load_config()
TypeError: load_config() missing 1 required positional argument: 'keys'

Fuzzer:

Worker-00 Entering fuzz loop.. 00:00:09: Got 1 from 0: exit=R, 11/ 0 bits, 11 favs, 1.51msec, 0.2KB (kickstart) 00:00:09: Got 2 from 0: exit=R, 2/ 0 bits, 12 favs, 0.12msec, 0.2KB (kickstart) 00:00:09: Got 3 from 0: exit=R, 2/ 0 bits, 3 favs, 0.12msec, 0.2KB (kickstart) 00:00:12: Got 4 from 0: exit=R, 2/ 0 bits, 2 favs, 0.12msec, 0.2KB (kickstart) 00:00:14: Got 5 from 2: exit=R, 1/ 0 bits, 1 favs, 0.12msec, 0.0KB (trim) 00:03:02: Got 6 from 4: exit=R, 2/ 0 bits, 2 favs, 0.13msec, 0.0KB (afl_splice) 00:03:33: Got 7 from 3: exit=R, 2/ 0 bits, 2 favs, 0.13msec, 0.0KB (afl_splice) 00:03:39: Got 8 from 3: exit=R, 2/ 0 bits, 2 favs, 0.13msec, 0.0KB (afl_splice) 00:07:13: Got 9 from 6: exit=R, 2/ 0 bits, 2 favs, 0.13msec, 0.0KB (afl_splice) 00:08:02: Got 10 from 8: exit=C, 14/ 0 bits, 0 favs, 0.54msec, 0.0KB (afl_splice) 00:10:17: Got 11 from 9: exit=R, 2/ 0 bits, 2 favs, 0.13msec, 0.0KB (afl_flip_2/1) 00:10:38: Got 12 from 2: exit=C, 7/ 0 bits, 0 favs, 0.29msec, 0.0KB (afl_splice) 00:12:50: Got 13 from 9: exit=R, 2/ 0 bits, 2 favs, 0.11msec, 0.0KB (afl_splice) 00:23:13: 5280 exec/s, 30 edges, 0% favs pending, findings: <2, 0, 0>

The Fuzz works smoothly, and the driver used a test driver (as described in the tutorial). However, if I try to use gui after making env in the new terminal, it won't work. What am I missing?

Wenzel commented 1 year ago

Hi @hyjun0407 and thanks for the bug report.

What am I missing?

You are not missing anything, I overlooked a parameter that should have really been optional (not just with Optional[ ] typing)

I published a fix for this regression, and already merged it. Since kAFL's playbook is using the fuzzer's master branch, simply redeploying should do the trick ! (make deploy)

Sorry for the incovenience !