evanmak / savior-source

source code for savior fuzzer
Apache License 2.0
126 stars 27 forks source link

SIMPLE_FILES macro necessary with KLEE #7

Open rachelcleaveland opened 4 years ago

rachelcleaveland commented 4 years ago

Hello, when I run Savior I get the following error:

Traceback (most recent call last):
  File "../../coordinator/moriarty.py", line 278, in <module>
    init(args.target, args.config);
  File "../../coordinator/moriarty.py", line 268, in init
    moriarty.start()
  File "../../coordinator/moriarty.py", line 241, in start
    utils.loop_every(self.epoch, self.poke_switch_oracle)
  File "/root/savior/ml_fuzzing/savior-source/coordinator/utils/utils.py", line 226, in loop_every
    func();
  File "../../coordinator/moriarty.py", line 158, in poke_switch_oracle
    self.se_factory.run(deduplicated_list, self.explorer_cov_file_list, self.batch_run_seed_num)
  File "/root/savior/ml_fuzzing/savior-source/coordinator/SEs/klee_explorer.py", line 63, in run
    _.run(input_list[input_base : input_base + batch_run_input_num], cov_file_list[explorer_base : explorer_base + self.se_num][i])
  File "/root/savior/ml_fuzzing/savior-source/coordinator/SEs/klee_conc_explorer.py", line 152, in run
    if max_input_size < os.path.getsize(afl_input):
  File "/usr/lib/python2.7/genericpath.py", line 57, in getsize
    return os.stat(filename).st_size
OSError: [Errno 2] No such file or directory: 'obj-savior/out/master/queue/id_000181'

When the coordinator tries to get the seed files specified in coverage.csv to give to KLEE, it cannot find them unless the SIMPLE_FILES macro in AFL/config.h is uncommented (since the file names written in coverage.csv are only the simple versions). Is this normal? Is there a way to get Savior to run while allowing the file names to be their longer versions?

evanmak commented 4 years ago

Hi, sorry for the inconvenience, the naming convention is implemented by the KLEE's converter that converts .ktest files to concrete input. It is probably difficult to alter the behavior without touching the KLEE source.