Compare commits

..

No commits in common. "RTSS25-AE" and "master" have entirely different histories.

8 changed files with 19 additions and 34 deletions

6
.gitmodules vendored
View File

@ -1,10 +1,10 @@
[submodule "LibAFL"]
path = LibAFL
url = https://git.cs.tu-dortmund.de/SYS-OSS/FRET-LibAFL.git
url = ssh://git@git.cs.tu-dortmund.de:2222/alwin.berger/FRET-LibAFL.git
[submodule "qemu-libafl-bridge"]
path = qemu-libafl-bridge
url = https://git.cs.tu-dortmund.de/SYS-OSS/FRET-qemu.git
url = ssh://git@git.cs.tu-dortmund.de:2222/alwin.berger/FRET-qemu.git
[submodule "FreeRTOS"]
path = FreeRTOS
url = https://git.cs.tu-dortmund.de/SYS-OSS/FRET-FreeRTOS.git
url = ssh://git@git.cs.tu-dortmund.de:2222/alwin.berger/FRET-FreeRTOS.git
branch = wcet-demo

View File

@ -34,7 +34,7 @@ Download our ready-made VM image from [https://sys-sideshow.cs.tu-dortmund.de/do
1. Clone the repository:
```bash
git clone https://git.cs.tu-dortmund.de/SYS-OSS/FRET
git clone https://git.cs.tu-dortmund.de/alwin.berger/FRET
cd FRET
git checkout RTSS25-AE
git submodule update --init
@ -55,10 +55,8 @@ nix develop # or nix-shell for older Nix versions
1. Clone the repository:
```bash
git clone --recursive https://git.cs.tu-dortmund.de/SYS-OSS/FRET
git clone --recursive https://git.cs.tu-dortmund.de/alwin.berger/FRET
cd FRET
git checkout RTSS25-AE
git submodule update --init
```
2. See [Docker/README.md](Docker/README.md)
@ -118,13 +116,9 @@ mkdir -p $TMPDIR
export DUMP=$(mktemp -d)
dd if=/dev/random of=$DUMP/input bs=8K count=1
# fuzz for 10 seconds
cargo run -- -k benchmark/build/waters_seq_full.elf \
-c benchmark/target_symbols.csv \
-n $DUMP/output -ta fuzz -t 10 --seed 123456
cargo run -- -k benchmark/build/waters_seq_full.elf -c benchmark/target_symbols.csv -n $DUMP/output -ta fuzz -t 10 --seed 123456
# Produce a trace for the worst case found
cargo run -- -k benchmark/build/waters_seq_full.elf \
-c benchmark/target_symbols.csv \
-n $DUMP/show -trg showmap -i $DUMP/output.case
cargo run -- -k benchmark/build/waters_seq_full.elf -c benchmark/target_symbols.csv -n $DUMP/show -trg showmap -i $DUMP/output.case
# plot the result
gantt_driver $DUMP/show.trace.ron
# view the gantt chart
@ -236,4 +230,4 @@ For questions about the artifact or issues during evaluation, please contact:
## License
This artifact is provided under Apache License Version 2.0.
This artifact is provided under Apache License Version 2.0.

@ -1 +1 @@
Subproject commit e1179c292dfb5612c8cb7c52f98aac4c8f0371e2
Subproject commit 24bba6bde09c45f037c72e8804d5f6867b8d0531

2
LibAFL

@ -1 +1 @@
Subproject commit 8e1863847fb5ceb857a770f8cb30253a623a9161
Subproject commit 36bd06cb99e6fb825519774e6d6db4d40f747bb6

View File

@ -63,8 +63,8 @@ export BENCHDIR="eval_$(date -I)"
# Reproduce the evals in the paper e.g.
snakemake --cores 64 eval_bytes eval_int eval_full waters_multi
# plot the resutls
snakemake -c20 plot_benchmarks
sh plot_all_benchmarks.sh
# See images in $BENCHDIR
snakemake -c20 plot_traces
sh plot_all_traces.sh
# See HTML files in $BENCHDIR/timedump/*/ for traces of the worst cases
```

View File

@ -1,8 +0,0 @@
@inproceedings{
berger2025dynamic,
title={Dynamic Fuzzing-Based Whole-System Timing Analysis},
author={Alwin Berger and Simon Schuster and Peter W{\"a}gemann and Peter Ulbrich},
booktitle={The 46th IEEE Real-Time Systems Symposium, Artifact Evaluation},
year={2025},
url={https://openreview.net/forum?id=LlBXyI12R8}
}

View File

@ -1,13 +1,13 @@
#!/usr/bin/env bash
# Configuration
export CORES=${CORES:-64} # Number of physical cores
export RUNTIME=${RUNTIME:-86400} # 24 hours in seconds
export TARGET_REPLICA_NUMBER=${TARGET_REPLICA_NUMBER:-12}
export RANDOM_REPLICA_NUMBER=${RANDOM_REPLICA_NUMBER:-3}
export MULTIJOB_REPLICA_NUMBER=${MULTIJOB_REPLICA_NUMBER:-3}
export CORES=64 # Number of physical cores
export RUNTIME=86400 # 24 hours in seconds
export TARGET_REPLICA_NUMBER=12
export RANDOM_REPLICA_NUMBER=3
export MULTIJOB_REPLICA_NUMBER=3
if [[ -z "$INSIDE_DEVSHELL" ]]; then
if [[ -z "$INSIDE_DEVSHELL" ]]; then
echo "This script should be run inside a nix-shell. Run 'nix develop' or 'nix-shell' first."
exit 1
fi
@ -17,13 +17,12 @@ cd "$SCRIPT_DIR"
cd LibAFL/fuzzers/FRET/benchmark
export BENCHDIR="${BENCHDIR:-eval_$(date -I)}"
export BENCHDIR="eval_$(date -I)"
# prepare all fuzzer configurations
snakemake --keep-incomplete --cores $CORES all_bins
# Run the eval examples from the paper (eval_bytes = Fig. 3, eval_int = Fig. 4, eval_full = Fig. 5, waters_multi = Fig. 6)
snakemake --keep-incomplete --cores $CORES eval_bytes eval_int eval_full waters_multi
# plot the resutls
rm -f $BENCHDIR/bench.sqlite
snakemake --keep-incomplete --cores $CORES plot_benchmarks
# See images in $BENCHDIR
snakemake --keep-incomplete --cores $CORES plot_traces