Efficient Parameter-Independent Data Debloating (Fuzzer and Carver). For Parameter-Specific Data Debloating (I/O Event audit), see this repo: https://github.com/depaul-dice/InterpositionBasedKondo
Please change to complete-debloat for running any of the below scripts
(cd Kondo/complete-debloat
)
There are two ways to regenerate the results from the paper:
- Without recomputing the raw data: The plots can be regenerated by running the script
python plot_stats.py
. This uses pre-compiled data saved inpaper_result_data
to generate the plots. Please runbash install.sh
to install the required dependencies before running the scipt. - Recomputing all data from scratch: Please run the command
bash run.sh
to rerun all simulations to generate data corresponding to all three tools: Kondo, AFL and Bf across all experiments.
Note that on a machine with 32 cores and 93 GB memory, this takes ~2 days to run end-to-end. The actual time taken would depend on the machine used and might increase significantly on a lower spec machine.
The script consists of the following broad sections:
-
Installations: This section installs all the required dependencies for running the scripts. This includes gcc, python, pip, multiple python libraries and AFL.
-
Compilations This section compiles all the micro-benchmark source code for all experiments.
-
Compiling AFL programs This section compiles benchmark source for AFL. As the
offset_check.c
files are very large, this section takes considerable time to run. The script tries to run the compilations in parallel, so the more cores, the better.run.sh
contains a sleep timer at line 53. Please increase the timer in case the compilation does not complete before that. This stage needs to be completed before proceeding.ps aux | grep afl-clang
can be used to check if some compilations are still running. -
Runnning Kondo and BF This section runs both Kondo and BF over the benchmark programs. The repetitions for each program is set to 1 for the script to run faster. The paper uses more runs.
-
Running AFL This section runs the AFL fuzzer on the programs. The
AFL-experiments/fuzz.sh
script is called for this. It runs for an hour. If AFL is desired to be run for more time, please change the time online 82
inAFL-experiments/fuzz.sh
-
Offset space variation experiments This section runs Kondo again for the offset space variation experiment
-
Finally, the scripts for computing the aggregates and plotting all data is run. The final results are saved in
paper_result_data