fix some helper-scripts

This commit is contained in:
Alwin Berger 2024-08-26 15:20:48 +02:00
parent 9d83ddbd69
commit 8e885f6e85
4 changed files with 50 additions and 18 deletions

View File

@ -170,10 +170,10 @@ rule run_showmap:
run: run:
with open('target_symbols.csv') as csvfile: with open('target_symbols.csv') as csvfile:
reader = csv.DictReader(csvfile) reader = csv.DictReader(csvfile)
line = next((x for x in reader if x['kernel']==wildcards.target), None) line = next((x for x in reader if x['\ufeffkernel']==wildcards.target), None)
if line == None: if line == None:
return False return False
kernel=line['kernel'] kernel=line['\ufeffkernel']
fuzz_main=line['main_function'] fuzz_main=line['main_function']
fuzz_input=line['input_symbol'] fuzz_input=line['input_symbol']
fuzz_len=line['input_size'] fuzz_len=line['input_size']
@ -196,19 +196,21 @@ rule run_showmap:
rule tarnsform_trace: rule tarnsform_trace:
input: input:
"{remote}timedump/{fuzzer}/{target}.{num}.trace.ron" "{remote}timedump/{fuzzer}/{target}#{num}_case.trace.ron",
output: output:
"{remote}timedump/{fuzzer}/{target}.{num}.trace.csv" "{remote}timedump/{fuzzer}/{target}#{num}_case.jobs.csv",
"{remote}timedump/{fuzzer}/{target}#{num}_case.resp.csv"
shell: shell:
"$(pwd)/../../../../state2gantt/target/debug/state2gantt {input} {output[0]} {output[0]}2" "$(pwd)/../../../../state2gantt/target/debug/state2gantt {input} {output[0]} {output[1]}"
rule trace2gantt: rule trace2gantt:
input: input:
"{remote}timedump/{fuzzer}/{target}.{num}.trace.csv" "{remote}timedump/{fuzzer}/{target}#{num}_case.jobs.csv",
"{remote}timedump/{fuzzer}/{target}#{num}_case.resp.csv"
output: output:
"{remote}timedump/{fuzzer}/{target}.{num}.trace.csv.png" "{remote}timedump/{fuzzer}/{target}#{num}_case.jobs.html",
shell: shell:
"Rscript --vanilla $(pwd)/../../../../state2gantt/gantt.R {input}" "Rscript $(pwd)/../../../../state2gantt/plot_response.r {input[0]} {input[1]} html"
rule all_main: rule all_main:
input: input:

View File

@ -4,12 +4,24 @@ cp ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/build/RTOSDemo.axf
make -C ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC clean && make -C ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC WATERS_DEMO=1 INTERRUPT_ACTIVATION=0 make -C ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC clean && make -C ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC WATERS_DEMO=1 INTERRUPT_ACTIVATION=0
cp ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/build/RTOSDemo.axf build/waters.elf cp ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/build/RTOSDemo.axf build/waters.elf
make -C ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC clean && make -C ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC WATERSPART_DEMO=1 INTERRUPT_ACTIVATION=1
cp ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/build/RTOSDemo.axf build/waterspart_int.elf
make -C ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC clean && make -C ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC WATERSPART_DEMO=1 INTERRUPT_ACTIVATION=0
cp ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/build/RTOSDemo.axf build/waterspart.elf
make -C ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC clean && make -C ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC WATERSV2_DEMO=1 INTERRUPT_ACTIVATION=1 make -C ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC clean && make -C ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC WATERSV2_DEMO=1 INTERRUPT_ACTIVATION=1
cp ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/build/RTOSDemo.axf build/watersv2_int.elf cp ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/build/RTOSDemo.axf build/watersv2_int.elf
make -C ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC clean && make -C ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC WATERSV2_DEMO=1 INTERRUPT_ACTIVATION=0 make -C ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC clean && make -C ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC WATERSV2_DEMO=1 INTERRUPT_ACTIVATION=0
cp ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/build/RTOSDemo.axf build/watersv2.elf cp ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/build/RTOSDemo.axf build/watersv2.elf
make -C ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC clean && make -C ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC WATERSPARTV2_DEMO=1 INTERRUPT_ACTIVATION=1
cp ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/build/RTOSDemo.axf build/waterspartv2_int.elf
make -C ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC clean && make -C ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC WATERSPARTV2_DEMO=1 INTERRUPT_ACTIVATION=0
cp ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/build/RTOSDemo.axf build/waterspartv2.elf
make -C ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC clean && make -C ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC INTERACT_DEMO=1 INTERRUPT_ACTIVATION=1 make -C ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC clean && make -C ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC INTERACT_DEMO=1 INTERRUPT_ACTIVATION=1
cp ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/build/RTOSDemo.axf build/interact_int.elf cp ../../../../FreeRTOS/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/build/RTOSDemo.axf build/interact_int.elf

View File

@ -2,6 +2,10 @@ Rscript plot_multi.r remote waters ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/rem
Rscript plot_multi.r remote waters_int ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote & Rscript plot_multi.r remote waters_int ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote &
Rscript plot_multi.r remote watersv2 ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote & Rscript plot_multi.r remote watersv2 ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote &
Rscript plot_multi.r remote watersv2_int ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote & Rscript plot_multi.r remote watersv2_int ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote &
Rscript plot_multi.r remote waterspart ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote &
Rscript plot_multi.r remote waterspart_int ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote &
Rscript plot_multi.r remote waterspartv2 ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote &
Rscript plot_multi.r remote waterspartv2_int ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote &
Rscript plot_multi.r remote interact ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote & Rscript plot_multi.r remote interact ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote &
Rscript plot_multi.r remote interact_int ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote & Rscript plot_multi.r remote interact_int ~/code/FRET/LibAFL/fuzzers/FRET/benchmark/remote &
wait wait

View File

@ -1,14 +1,28 @@
#!/usr/bin/env bash #!/usr/bin/env bash
find ./remote/timedump -type 'f' -iregex '.*case' | while IFS="" read -r p || [ -n "$p" ] declare -a PLOTS
COUNT=0
while IFS="" read -r p || [ -n "$p" ];
do do
N=$(dirname "$p")/$(basename -s .case "$p") if [[ -z "$p" ]]; then
continue
fi
N="$(dirname "$p")/$(basename -s .case "$p")"
T="${N}_case.trace.ron" T="${N}_case.trace.ron"
P="${N}_case" P="${N}_case"
echo $N H="${N}_case.jobs.html"
if [ ! -f "$T" ]; then echo "$COUNT $p -> $H"
snakemake -c1 "$T" IFS=" "
fi # PLOTS+=("$H")
if [ ! -f "$P.html" ]; then PLOTS[$COUNT]="$H"
~/code/FRET/state2gantt/driver.sh "$T" COUNT=$((COUNT+1))
fi
done # if [ ! -f "$T" ]; then
# snakemake -c1 "$T"
# fi
# if [ ! -f "$P.html" ]; then
# ~/code/FRET/state2gantt/driver.sh "$T"
# fi
done < <(find ./remote/timedump -maxdepth 2 -type 'f' -iregex '.*\.case')
# echo "${PLOTS[@]}"
snakemake -c 6 "${PLOTS[@]}"