Dongdongshe / K-Scheduler

A universal seed scheduler for fuzzers (LibFuzzer and AFL havoc mode) and concolic execution engine (qsym).
MIT License
113 stars 19 forks source link

Questions about the Fuzzbench #14

Closed stwjt closed 1 year ago

stwjt commented 1 year ago

Hi, I carefully read the K-Scheduler paper, especially the Evaluation section. I have a few questions about the Fuzzbench.

  1. What are the advantages of using the Fuzzbench for edge coverage experiments? Because many works (such as ecofuzz, TortoiseFuzz, etc.) used real-world applications in their papers instead. Is there any difference between using programs in Fuzzbench and downloading the corresponding programs directly from the official website?
  2. I would like to ask whether K-Scheduler runs the Fuzzbench's programs in the docker or compiles the Fuzzbench's programs outside the docker.
  3. If K-Scheduler fuzzes the target programs in the docker, how to configure the related scripts to extract the ICFG of the program for K-Scheduler? If the program in Fuzzbench is deployed outside the docker, what process and standard should be followed to compile the program in Fuzzbench? (For example, what program version should be chosen, and why does harfbuzz need to compile the wrapper additionally?)
Dongdongshe commented 1 year ago
  1. The advantage of FuzzBench is a standard tested program and uniform seed corpus. There is not much difference between API wrappers in FuzzBench and the corresponding utility programs from the official repo (e.g., FuzzBench libxml VS xmllint from libxml). We also tested other works (i.e., ecoFuzz and TortoiseFuzz) VS K-Scheduler on utility programs from official repos, and the advantage of K-Scheduler still holds. You can run more evaluations of K-Scheduler following the tutorial https://github.com/Dongdongshe/K-Scheduler/tree/main/afl_integration/build_example.
  2. All K-Scheduler FuzzBench settings are not based on docker. You can directly run it on any Linux platform.
  3. Please see tutorials on https://github.com/Dongdongshe/K-Scheduler/tree/main/libfuzzer_integration/build_example to set up experiments and see official documents about FuzzBench to learn more about wrapper in FuzzBench setting (https://google.github.io/fuzzbench/).
stwjt commented 1 year ago

Thanks.