mirror of
https://github.com/AFLplusplus/AFLplusplus.git
synced 2025-06-25 23:09:55 +00:00
Compare commits
201 Commits
Author | SHA1 | Date | |
---|---|---|---|
775861ea94 | |||
602eceed8b | |||
68dc4829b3 | |||
a25f27de28 | |||
ed1a6f8a57 | |||
a9292626a6 | |||
1e7485dcee | |||
58871777ae | |||
f98dc8abe8 | |||
028d4c8c64 | |||
ba28f5fbfa | |||
5ba66a8860 | |||
06f0982f0f | |||
eda770fd32 | |||
37d2039211 | |||
d8e8d34c4e | |||
96ada75bd9 | |||
87596105ef | |||
ac639012fb | |||
a84b7c7820 | |||
5549212d9e | |||
eb52f1cc08 | |||
236fb9b145 | |||
e5d305ad42 | |||
76a033431d | |||
7793692590 | |||
97ba817aa7 | |||
6e6d91b6b0 | |||
123ec5d136 | |||
5da5d6e0df | |||
c33de47120 | |||
643df2b538 | |||
970e0b14ce | |||
3768933c92 | |||
da5d3d63e2 | |||
ccad11f7eb | |||
0d164e4c18 | |||
644e069450 | |||
75af391408 | |||
9604fe922e | |||
d5b6c0f773 | |||
12ab9ebd32 | |||
4859b583ad | |||
1ffb1b6b2a | |||
58b80b68bc | |||
2f9eeef60c | |||
d88c97ad28 | |||
ba28c4982b | |||
8746b3e310 | |||
a5db79e4d6 | |||
d5812786f3 | |||
227c1a7002 | |||
243c6640a8 | |||
33a129e00c | |||
9cefc4d3d4 | |||
3046c80cd5 | |||
ab0823cd3b | |||
de561b730a | |||
a518c4d75c | |||
660b697ed9 | |||
cefc9a00bf | |||
0c054f520e | |||
e731a1c1ab | |||
523ce154c3 | |||
04219f9857 | |||
136febaf68 | |||
046473acd5 | |||
8412b17d79 | |||
e9621db61c | |||
68d883d428 | |||
46ef6a54e1 | |||
355dcf6320 | |||
a4017406dc | |||
b99bbf671b | |||
9d3c25ac81 | |||
4e9c6050d0 | |||
f75778adfb | |||
db65dc5a0b | |||
bb6d9cddd7 | |||
ee7d69b817 | |||
aad9ac2b33 | |||
358cd1b062 | |||
0aeee03e47 | |||
9d305acbf3 | |||
5f492da717 | |||
c5b4e26052 | |||
1a60e35a2a | |||
2260a065f4 | |||
1eb54c4c3e | |||
c39596c8bf | |||
88cbaeb3e1 | |||
25f9c1f4fb | |||
934a02f7f6 | |||
98a2a334de | |||
1fc1b32db2 | |||
b01ef97569 | |||
c3197dfeb7 | |||
a9e6998b82 | |||
dcb5bc3fa5 | |||
daaefcddc0 | |||
3c0cfd82bc | |||
df0638ab87 | |||
27d05f3c21 | |||
86d76b52ac | |||
c38dedbecd | |||
2f74feaf99 | |||
806a76afae | |||
f822cdeb74 | |||
7fabe5052b | |||
353ae3682a | |||
ca0c9f6d17 | |||
108fb0b29a | |||
8a7705aedb | |||
37505928bc | |||
ae9cdb34e4 | |||
f290bdd83b | |||
a576f7aef4 | |||
ab532e7c15 | |||
b2d118f821 | |||
a062e84ba6 | |||
520daf5e0f | |||
bb1d4a2491 | |||
ef706ad668 | |||
5b655e0d59 | |||
981a90d788 | |||
5482204327 | |||
1250586156 | |||
638273e4f8 | |||
6c04d4cc80 | |||
5759b93b2d | |||
0e7afb75dd | |||
01e0d4aa1c | |||
477a517628 | |||
b0cb2f7e83 | |||
5d544ce21a | |||
4e0a794431 | |||
21f874c165 | |||
3fc9e680f3 | |||
858e0bfd05 | |||
d02036adfd | |||
1fa285079f | |||
39be50e2a8 | |||
74f8ca6b46 | |||
dd9a04c901 | |||
d2aef74ad7 | |||
e4f3ebcebb | |||
81b43cefdf | |||
bb523b4648 | |||
c9e0f01b43 | |||
0547c49b2b | |||
faedb3fb29 | |||
8af74bcaee | |||
770e868d04 | |||
c96aa400e4 | |||
d17e0b32f4 | |||
a2a4171039 | |||
d6cefdc193 | |||
aabbdac86d | |||
5681267bbc | |||
07352a932b | |||
91a1459820 | |||
444ddb2d09 | |||
f2cbcdf3ff | |||
d9ffe7427f | |||
d34bed5dbf | |||
75a3af8a23 | |||
4d8df780ed | |||
43b8812c5c | |||
1179bfeab7 | |||
b05e3f7ac0 | |||
885f949ac7 | |||
a071430983 | |||
a289a3e454 | |||
afb9b8a961 | |||
26045831a2 | |||
df9f2c4205 | |||
8b79d9b4d5 | |||
8c1f25b757 | |||
16993bba8f | |||
3fd2e161db | |||
61e27c6b54 | |||
a6efdfdb15 | |||
6f8696c314 | |||
cfbf1209b5 | |||
f7d19390fb | |||
ac0ad56348 | |||
8ad36af95d | |||
f3d2127fd8 | |||
053334f35d | |||
6ed3f4cfac | |||
8338844284 | |||
85c5b5218c | |||
3bfd194d46 | |||
b9db6b1254 | |||
49a1d81191 | |||
f8ca83ff4a | |||
91938d2dfc | |||
8e8acd0a04 | |||
0091afc761 | |||
bcaa3cb591 | |||
9b0a35d843 |
@ -24,7 +24,7 @@ import importlib.metadata
|
|||||||
|
|
||||||
# string_re = re.compile('(\\"(\\\\.|[^"\\\\])*\\")') # TODO: for future use
|
# string_re = re.compile('(\\"(\\\\.|[^"\\\\])*\\")') # TODO: for future use
|
||||||
|
|
||||||
CURRENT_LLVM = os.getenv('LLVM_VERSION', 16)
|
CURRENT_LLVM = os.getenv('LLVM_VERSION', 17)
|
||||||
CLANG_FORMAT_BIN = os.getenv("CLANG_FORMAT_BIN", "")
|
CLANG_FORMAT_BIN = os.getenv("CLANG_FORMAT_BIN", "")
|
||||||
|
|
||||||
|
|
||||||
|
10
.github/workflows/ci.yml
vendored
10
.github/workflows/ci.yml
vendored
@ -20,20 +20,18 @@ jobs:
|
|||||||
AFL_I_DONT_CARE_ABOUT_MISSING_CRASHES: 1
|
AFL_I_DONT_CARE_ABOUT_MISSING_CRASHES: 1
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
|
- name: update
|
||||||
|
run: sudo apt-get update && sudo apt-get upgrade -y
|
||||||
- name: debug
|
- name: debug
|
||||||
run: apt-cache search plugin-dev | grep gcc-; echo; apt-cache search clang-format- | grep clang-format-
|
run: apt-cache search plugin-dev | grep gcc-; echo; apt-cache search clang-format- | grep clang-format-
|
||||||
- name: update
|
|
||||||
run: sudo apt-get update
|
|
||||||
# && sudo apt-get upgrade -y
|
|
||||||
- name: install packages
|
- name: install packages
|
||||||
#run: sudo apt-get install -y -m -f --install-suggests build-essential git libtool libtool-bin automake bison libglib2.0-0 clang llvm-dev libc++-dev findutils libcmocka-dev python3-dev python3-setuptools ninja-build python3-pip
|
run: sudo apt-get install -y -m -f build-essential gcc-10 g++-10 git libtool libtool-bin automake flex bison libglib2.0-0 clang-12 llvm-12-dev libc++-dev findutils libcmocka-dev python3-dev python3-setuptools ninja-build python3-pip gcc-10-plugin-dev
|
||||||
run: sudo apt-get install -y -m -f build-essential git libtool libtool-bin automake flex bison libglib2.0-0 clang llvm-dev libc++-dev findutils libcmocka-dev python3-dev python3-setuptools ninja-build python3-pip
|
|
||||||
- name: compiler installed
|
- name: compiler installed
|
||||||
run: gcc -v; echo; clang -v
|
run: gcc -v; echo; clang -v
|
||||||
- name: install gcc plugin
|
- name: install gcc plugin
|
||||||
run: sudo apt-get install -y -m -f --install-suggests $(readlink /usr/bin/gcc)-plugin-dev
|
run: sudo apt-get install -y -m -f --install-suggests $(readlink /usr/bin/gcc)-plugin-dev
|
||||||
- name: build afl++
|
- name: build afl++
|
||||||
run: make distrib ASAN_BUILD=1 NO_NYX=1
|
run: export NO_NYX=1; export ASAN_BUILD=1; export LLVM_CONFIG=llvm-config-12; make ASAN_BUILD=1 NO_NYX=1 LLVM_CONFIG=llvm-config-12 distrib
|
||||||
- name: run tests
|
- name: run tests
|
||||||
run: sudo -E ./afl-system-config; make tests
|
run: sudo -E ./afl-system-config; make tests
|
||||||
# macos:
|
# macos:
|
||||||
|
6
.gitmodules
vendored
6
.gitmodules
vendored
@ -19,9 +19,9 @@
|
|||||||
[submodule "nyx_mode/libnyx"]
|
[submodule "nyx_mode/libnyx"]
|
||||||
path = nyx_mode/libnyx
|
path = nyx_mode/libnyx
|
||||||
url = https://github.com/nyx-fuzz/libnyx.git
|
url = https://github.com/nyx-fuzz/libnyx.git
|
||||||
[submodule "nyx_mode/QEMU-Nyx"]
|
|
||||||
path = nyx_mode/QEMU-Nyx
|
|
||||||
url = https://github.com/nyx-fuzz/qemu-nyx.git
|
|
||||||
[submodule "nyx_mode/packer"]
|
[submodule "nyx_mode/packer"]
|
||||||
path = nyx_mode/packer
|
path = nyx_mode/packer
|
||||||
url = https://github.com/nyx-fuzz/packer.git
|
url = https://github.com/nyx-fuzz/packer.git
|
||||||
|
[submodule "nyx_mode/QEMU-Nyx"]
|
||||||
|
path = nyx_mode/QEMU-Nyx
|
||||||
|
url = https://github.com/nyx-fuzz/QEMU-Nyx
|
||||||
|
@ -16,8 +16,8 @@ ENV NO_CORESIGHT=1
|
|||||||
ENV NO_NYX=1
|
ENV NO_NYX=1
|
||||||
|
|
||||||
### Only change these if you know what you are doing:
|
### Only change these if you know what you are doing:
|
||||||
# LLVM 15 does not look good so we stay at 14 to still have LTO
|
# Current recommended LLVM version is 16
|
||||||
ENV LLVM_VERSION=14
|
ENV LLVM_VERSION=16
|
||||||
# GCC 12 is producing compile errors for some targets so we stay at GCC 11
|
# GCC 12 is producing compile errors for some targets so we stay at GCC 11
|
||||||
ENV GCC_VERSION=11
|
ENV GCC_VERSION=11
|
||||||
|
|
||||||
@ -88,7 +88,7 @@ ARG TEST_BUILD
|
|||||||
|
|
||||||
RUN sed -i.bak 's/^ -/ /g' GNUmakefile && \
|
RUN sed -i.bak 's/^ -/ /g' GNUmakefile && \
|
||||||
make clean && make distrib && \
|
make clean && make distrib && \
|
||||||
([ "${TEST_BUILD}" ] || (make install && make clean)) && \
|
([ "${TEST_BUILD}" ] || (make install)) && \
|
||||||
mv GNUmakefile.bak GNUmakefile
|
mv GNUmakefile.bak GNUmakefile
|
||||||
|
|
||||||
RUN echo "set encoding=utf-8" > /root/.vimrc && \
|
RUN echo "set encoding=utf-8" > /root/.vimrc && \
|
||||||
|
27
GNUmakefile
27
GNUmakefile
@ -66,6 +66,10 @@ ifdef MSAN_BUILD
|
|||||||
override LDFLAGS += -fsanitize=memory
|
override LDFLAGS += -fsanitize=memory
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifdef CODE_COVERAGE
|
||||||
|
override CFLAGS += -D__AFL_CODE_COVERAGE=1
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq "$(findstring android, $(shell $(CC) --version 2>/dev/null))" ""
|
ifeq "$(findstring android, $(shell $(CC) --version 2>/dev/null))" ""
|
||||||
ifeq "$(shell echo 'int main() {return 0; }' | $(CC) $(CFLAGS) -Werror -x c - -flto=full -o .test 2>/dev/null && echo 1 || echo 0 ; rm -f .test )" "1"
|
ifeq "$(shell echo 'int main() {return 0; }' | $(CC) $(CFLAGS) -Werror -x c - -flto=full -o .test 2>/dev/null && echo 1 || echo 0 ; rm -f .test )" "1"
|
||||||
CFLAGS_FLTO ?= -flto=full
|
CFLAGS_FLTO ?= -flto=full
|
||||||
@ -395,7 +399,7 @@ help:
|
|||||||
@echo INTROSPECTION - compile afl-fuzz with mutation introspection
|
@echo INTROSPECTION - compile afl-fuzz with mutation introspection
|
||||||
@echo NO_PYTHON - disable python support
|
@echo NO_PYTHON - disable python support
|
||||||
@echo NO_SPLICING - disables splicing mutation in afl-fuzz, not recommended for normal fuzzing
|
@echo NO_SPLICING - disables splicing mutation in afl-fuzz, not recommended for normal fuzzing
|
||||||
@echo NO_UTF - do not use UTF-8 for line rendering in status screen (fallback to G1 box drawing, of vanilla AFL)
|
@echo "NO_UTF - do not use UTF-8 for line rendering in status screen (fallback to G1 box drawing, of vanilla AFL)"
|
||||||
@echo NO_NYX - disable building nyx mode dependencies
|
@echo NO_NYX - disable building nyx mode dependencies
|
||||||
@echo "NO_CORESIGHT - disable building coresight (arm64 only)"
|
@echo "NO_CORESIGHT - disable building coresight (arm64 only)"
|
||||||
@echo NO_UNICORN_ARM64 - disable building unicorn on arm64
|
@echo NO_UNICORN_ARM64 - disable building unicorn on arm64
|
||||||
@ -649,16 +653,16 @@ endif
|
|||||||
# -$(MAKE) -C utils/plot_ui
|
# -$(MAKE) -C utils/plot_ui
|
||||||
-$(MAKE) -C frida_mode
|
-$(MAKE) -C frida_mode
|
||||||
ifneq "$(SYS)" "Darwin"
|
ifneq "$(SYS)" "Darwin"
|
||||||
ifeq "$(ARCH)" "aarch64"
|
ifeq "$(ARCH)" "aarch64"
|
||||||
ifndef NO_CORESIGHT
|
ifndef NO_CORESIGHT
|
||||||
-$(MAKE) -C coresight_mode
|
-$(MAKE) -C coresight_mode
|
||||||
endif
|
|
||||||
endif
|
endif
|
||||||
ifeq "$(SYS)" "Linux"
|
endif
|
||||||
ifndef NO_NYX
|
ifeq "$(SYS)" "Linux"
|
||||||
|
ifndef NO_NYX
|
||||||
-cd nyx_mode && ./build_nyx_support.sh
|
-cd nyx_mode && ./build_nyx_support.sh
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
-cd qemu_mode && sh ./build_qemu_support.sh
|
-cd qemu_mode && sh ./build_qemu_support.sh
|
||||||
ifeq "$(ARCH)" "aarch64"
|
ifeq "$(ARCH)" "aarch64"
|
||||||
ifndef NO_UNICORN_ARM64
|
ifndef NO_UNICORN_ARM64
|
||||||
@ -782,7 +786,7 @@ install: all $(MANPAGES)
|
|||||||
@rm -f $${DESTDIR}$(BIN_PATH)/afl-plot.sh
|
@rm -f $${DESTDIR}$(BIN_PATH)/afl-plot.sh
|
||||||
@rm -f $${DESTDIR}$(BIN_PATH)/afl-as
|
@rm -f $${DESTDIR}$(BIN_PATH)/afl-as
|
||||||
@rm -f $${DESTDIR}$(HELPER_PATH)/afl-llvm-rt.o $${DESTDIR}$(HELPER_PATH)/afl-llvm-rt-32.o $${DESTDIR}$(HELPER_PATH)/afl-llvm-rt-64.o $${DESTDIR}$(HELPER_PATH)/afl-gcc-rt.o
|
@rm -f $${DESTDIR}$(HELPER_PATH)/afl-llvm-rt.o $${DESTDIR}$(HELPER_PATH)/afl-llvm-rt-32.o $${DESTDIR}$(HELPER_PATH)/afl-llvm-rt-64.o $${DESTDIR}$(HELPER_PATH)/afl-gcc-rt.o
|
||||||
@for i in afl-llvm-dict2file.so afl-llvm-lto-instrumentlist.so afl-llvm-pass.so cmplog-instructions-pass.so cmplog-routines-pass.so cmplog-switches-pass.so compare-transform-pass.so libcompcov.so libdislocator.so libnyx.so libqasan.so libtokencap.so SanitizerCoverageLTO.so SanitizerCoveragePCGUARD.so split-compares-pass.so split-switches-pass.so; do echo rm -fv $${DESTDIR}$(HELPER_PATH)/$${i}; done
|
@for i in afl-llvm-dict2file.so afl-llvm-lto-instrumentlist.so afl-llvm-pass.so cmplog-instructions-pass.so cmplog-routines-pass.so cmplog-switches-pass.so compare-transform-pass.so libcompcov.so libdislocator.so libnyx.so libqasan.so libtokencap.so SanitizerCoverageLTO.so SanitizerCoveragePCGUARD.so split-compares-pass.so split-switches-pass.so injection-pass.so; do echo rm -fv $${DESTDIR}$(HELPER_PATH)/$${i}; done
|
||||||
install -m 755 $(PROGS) $(SH_PROGS) $${DESTDIR}$(BIN_PATH)
|
install -m 755 $(PROGS) $(SH_PROGS) $${DESTDIR}$(BIN_PATH)
|
||||||
@if [ -f afl-qemu-trace ]; then install -m 755 afl-qemu-trace $${DESTDIR}$(BIN_PATH); fi
|
@if [ -f afl-qemu-trace ]; then install -m 755 afl-qemu-trace $${DESTDIR}$(BIN_PATH); fi
|
||||||
@if [ -f utils/plot_ui/afl-plot-ui ]; then install -m 755 utils/plot_ui/afl-plot-ui $${DESTDIR}$(BIN_PATH); fi
|
@if [ -f utils/plot_ui/afl-plot-ui ]; then install -m 755 utils/plot_ui/afl-plot-ui $${DESTDIR}$(BIN_PATH); fi
|
||||||
@ -813,11 +817,12 @@ endif
|
|||||||
install -m 644 docs/*.md $${DESTDIR}$(DOC_PATH)
|
install -m 644 docs/*.md $${DESTDIR}$(DOC_PATH)
|
||||||
cp -r testcases/ $${DESTDIR}$(MISC_PATH)
|
cp -r testcases/ $${DESTDIR}$(MISC_PATH)
|
||||||
cp -r dictionaries/ $${DESTDIR}$(MISC_PATH)
|
cp -r dictionaries/ $${DESTDIR}$(MISC_PATH)
|
||||||
|
cp injections.dic $${DESTDIR}$(MISC_PATH)
|
||||||
|
|
||||||
.PHONY: uninstall
|
.PHONY: uninstall
|
||||||
uninstall:
|
uninstall:
|
||||||
-cd $${DESTDIR}$(BIN_PATH) && rm -f $(PROGS) $(SH_PROGS) afl-cs-proxy afl-qemu-trace afl-plot-ui afl-fuzz-document afl-network-server afl-g* afl-plot.sh afl-as afl-ld-lto afl-c* afl-lto*
|
-cd $${DESTDIR}$(BIN_PATH) && rm -f $(PROGS) $(SH_PROGS) afl-cs-proxy afl-qemu-trace afl-plot-ui afl-fuzz-document afl-network-client afl-network-server afl-g* afl-plot.sh afl-as afl-ld-lto afl-c* afl-lto*
|
||||||
-cd $${DESTDIR}$(HELPER_PATH) && rm -f afl-g*.*o afl-llvm-*.*o afl-compiler-*.*o libdislocator.so libtokencap.so libcompcov.so libqasan.so afl-frida-trace.so libnyx.so socketfuzz*.so argvfuzz*.so libAFLDriver.a libAFLQemuDriver.a as afl-as SanitizerCoverage*.so compare-transform-pass.so cmplog-*-pass.so split-*-pass.so dynamic_list.txt
|
-cd $${DESTDIR}$(HELPER_PATH) && rm -f afl-g*.*o afl-llvm-*.*o afl-compiler-*.*o libdislocator.so libtokencap.so libcompcov.so libqasan.so afl-frida-trace.so libnyx.so socketfuzz*.so argvfuzz*.so libAFLDriver.a libAFLQemuDriver.a as afl-as SanitizerCoverage*.so compare-transform-pass.so cmplog-*-pass.so split-*-pass.so dynamic_list.txt injections.dic
|
||||||
-rm -rf $${DESTDIR}$(MISC_PATH)/testcases $${DESTDIR}$(MISC_PATH)/dictionaries
|
-rm -rf $${DESTDIR}$(MISC_PATH)/testcases $${DESTDIR}$(MISC_PATH)/dictionaries
|
||||||
-sh -c "ls docs/*.md | sed 's|^docs/|$${DESTDIR}$(DOC_PATH)/|' | xargs rm -f"
|
-sh -c "ls docs/*.md | sed 's|^docs/|$${DESTDIR}$(DOC_PATH)/|' | xargs rm -f"
|
||||||
-cd $${DESTDIR}$(MAN_PATH) && rm -f $(MANPAGES)
|
-cd $${DESTDIR}$(MAN_PATH) && rm -f $(MANPAGES)
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
# from Laszlo Szekeres.
|
# from Laszlo Szekeres.
|
||||||
#
|
#
|
||||||
# Copyright 2015 Google Inc. All rights reserved.
|
# Copyright 2015 Google Inc. All rights reserved.
|
||||||
# Copyright 2019-2023 AFLplusplus Project. All rights reserved.
|
# Copyright 2019-2024 AFLplusplus Project. All rights reserved.
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
@ -45,13 +45,13 @@ endif
|
|||||||
LLVMVER = $(shell $(LLVM_CONFIG) --version 2>/dev/null | sed 's/git//' | sed 's/svn//' )
|
LLVMVER = $(shell $(LLVM_CONFIG) --version 2>/dev/null | sed 's/git//' | sed 's/svn//' )
|
||||||
LLVM_MAJOR = $(shell $(LLVM_CONFIG) --version 2>/dev/null | sed 's/\..*//' )
|
LLVM_MAJOR = $(shell $(LLVM_CONFIG) --version 2>/dev/null | sed 's/\..*//' )
|
||||||
LLVM_MINOR = $(shell $(LLVM_CONFIG) --version 2>/dev/null | sed 's/.*\.//' | sed 's/git//' | sed 's/svn//' | sed 's/ .*//' )
|
LLVM_MINOR = $(shell $(LLVM_CONFIG) --version 2>/dev/null | sed 's/.*\.//' | sed 's/git//' | sed 's/svn//' | sed 's/ .*//' )
|
||||||
LLVM_UNSUPPORTED = $(shell $(LLVM_CONFIG) --version 2>/dev/null | grep -E -q '^[0-2]\.|^3.[0-7]\.' && echo 1 || echo 0 )
|
LLVM_UNSUPPORTED = $(shell $(LLVM_CONFIG) --version 2>/dev/null | grep -E -q '^[0-2]\.|^3.[0-8]\.' && echo 1 || echo 0 )
|
||||||
LLVM_TOO_NEW = $(shell $(LLVM_CONFIG) --version 2>/dev/null | grep -E -q '^1[8-9]|^2[0-9]' && echo 1 || echo 0 )
|
LLVM_TOO_NEW = $(shell $(LLVM_CONFIG) --version 2>/dev/null | grep -E -q '^1[8-9]|^2[0-9]' && echo 1 || echo 0 )
|
||||||
LLVM_TOO_OLD = $(shell $(LLVM_CONFIG) --version 2>/dev/null | grep -E -q '^[1-9]\.|^1[012]\.' && echo 1 || echo 0 )
|
LLVM_TOO_OLD = $(shell $(LLVM_CONFIG) --version 2>/dev/null | grep -E -q '^[1-9]\.|^1[012]\.' && echo 1 || echo 0 )
|
||||||
LLVM_NEW_API = $(shell $(LLVM_CONFIG) --version 2>/dev/null | grep -E -q '^1[0-9]' && echo 1 || echo 0 )
|
LLVM_NEW_API = $(shell $(LLVM_CONFIG) --version 2>/dev/null | grep -E -q '^1[0-9]' && echo 1 || echo 0 )
|
||||||
LLVM_NEWER_API = $(shell $(LLVM_CONFIG) --version 2>/dev/null | grep -E -q '^1[6-9]' && echo 1 || echo 0 )
|
LLVM_NEWER_API = $(shell $(LLVM_CONFIG) --version 2>/dev/null | grep -E -q '^1[6-9]' && echo 1 || echo 0 )
|
||||||
LLVM_13_OK = $(shell $(LLVM_CONFIG) --version 2>/dev/null | grep -E -q '^1[3-9]' && echo 1 || echo 0 )
|
LLVM_13_OK = $(shell $(LLVM_CONFIG) --version 2>/dev/null | grep -E -q '^1[3-9]' && echo 1 || echo 0 )
|
||||||
LLVM_HAVE_LTO = $(shell $(LLVM_CONFIG) --version 2>/dev/null | grep -E -q '^1[1-9]' && echo 1 || echo 0 )
|
LLVM_HAVE_LTO = $(shell $(LLVM_CONFIG) --version 2>/dev/null | grep -E -q '^1[2-9]' && echo 1 || echo 0 )
|
||||||
LLVM_BINDIR = $(shell $(LLVM_CONFIG) --bindir 2>/dev/null)
|
LLVM_BINDIR = $(shell $(LLVM_CONFIG) --bindir 2>/dev/null)
|
||||||
LLVM_LIBDIR = $(shell $(LLVM_CONFIG) --libdir 2>/dev/null)
|
LLVM_LIBDIR = $(shell $(LLVM_CONFIG) --libdir 2>/dev/null)
|
||||||
LLVM_STDCXX = gnu++11
|
LLVM_STDCXX = gnu++11
|
||||||
@ -95,12 +95,12 @@ ifeq "$(LLVM_NEWER_API)" "1"
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq "$(LLVM_HAVE_LTO)" "1"
|
ifeq "$(LLVM_HAVE_LTO)" "1"
|
||||||
$(info [+] llvm_mode detected llvm 11+, enabling afl-lto LTO implementation)
|
$(info [+] llvm_mode detected llvm 12+, enabling afl-lto LTO implementation)
|
||||||
LLVM_LTO = 1
|
LLVM_LTO = 1
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq "$(LLVM_LTO)" "0"
|
ifeq "$(LLVM_LTO)" "0"
|
||||||
$(info [+] llvm_mode detected llvm < 11, afl-lto LTO will not be build.)
|
$(info [+] llvm_mode detected llvm < 12, afl-lto LTO will not be build.)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq "$(LLVM_APPLE_XCODE)" "1"
|
ifeq "$(LLVM_APPLE_XCODE)" "1"
|
||||||
@ -341,7 +341,7 @@ ifeq "$(TEST_MMAP)" "1"
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
PROGS_ALWAYS = ./afl-cc ./afl-compiler-rt.o ./afl-compiler-rt-32.o ./afl-compiler-rt-64.o
|
PROGS_ALWAYS = ./afl-cc ./afl-compiler-rt.o ./afl-compiler-rt-32.o ./afl-compiler-rt-64.o
|
||||||
PROGS = $(PROGS_ALWAYS) ./afl-llvm-pass.so ./SanitizerCoveragePCGUARD.so ./split-compares-pass.so ./split-switches-pass.so ./cmplog-routines-pass.so ./cmplog-instructions-pass.so ./cmplog-switches-pass.so ./afl-llvm-dict2file.so ./compare-transform-pass.so ./afl-ld-lto ./afl-llvm-lto-instrumentlist.so ./SanitizerCoverageLTO.so
|
PROGS = $(PROGS_ALWAYS) ./afl-llvm-pass.so ./SanitizerCoveragePCGUARD.so ./split-compares-pass.so ./split-switches-pass.so ./cmplog-routines-pass.so ./cmplog-instructions-pass.so ./cmplog-switches-pass.so ./afl-llvm-dict2file.so ./compare-transform-pass.so ./afl-ld-lto ./afl-llvm-lto-instrumentlist.so ./SanitizerCoverageLTO.so ./injection-pass.so
|
||||||
|
|
||||||
# If prerequisites are not given, warn, do not build anything, and exit with code 0
|
# If prerequisites are not given, warn, do not build anything, and exit with code 0
|
||||||
ifeq "$(LLVMVER)" ""
|
ifeq "$(LLVMVER)" ""
|
||||||
@ -469,6 +469,9 @@ endif
|
|||||||
afl-llvm-dict2file.so: instrumentation/afl-llvm-dict2file.so.cc instrumentation/afl-llvm-common.o | test_deps
|
afl-llvm-dict2file.so: instrumentation/afl-llvm-dict2file.so.cc instrumentation/afl-llvm-common.o | test_deps
|
||||||
$(CXX) $(CLANG_CPPFL) -shared $< -o $@ $(CLANG_LFL) instrumentation/afl-llvm-common.o
|
$(CXX) $(CLANG_CPPFL) -shared $< -o $@ $(CLANG_LFL) instrumentation/afl-llvm-common.o
|
||||||
|
|
||||||
|
./injection-pass.so: instrumentation/injection-pass.cc instrumentation/afl-llvm-common.o | test_deps
|
||||||
|
$(CXX) $(CLANG_CPPFL) -shared $< -o $@ $(CLANG_LFL) instrumentation/afl-llvm-common.o
|
||||||
|
|
||||||
.PHONY: document
|
.PHONY: document
|
||||||
document:
|
document:
|
||||||
$(CLANG_BIN) -D_AFL_DOCUMENT_MUTATIONS $(CFLAGS_SAFE) $(CPPFLAGS) $(CLANG_CFL) -O3 -Wno-unused-result -fPIC -c instrumentation/afl-compiler-rt.o.c -o ./afl-compiler-rt.o
|
$(CLANG_BIN) -D_AFL_DOCUMENT_MUTATIONS $(CFLAGS_SAFE) $(CPPFLAGS) $(CLANG_CFL) -O3 -Wno-unused-result -fPIC -c instrumentation/afl-compiler-rt.o.c -o ./afl-compiler-rt.o
|
||||||
|
@ -2,9 +2,9 @@
|
|||||||
|
|
||||||
<img align="right" src="https://raw.githubusercontent.com/AFLplusplus/Website/main/static/aflpp_bg.svg" alt="AFL++ logo" width="250" heigh="250">
|
<img align="right" src="https://raw.githubusercontent.com/AFLplusplus/Website/main/static/aflpp_bg.svg" alt="AFL++ logo" width="250" heigh="250">
|
||||||
|
|
||||||
Release version: [4.08c](https://github.com/AFLplusplus/AFLplusplus/releases)
|
Release version: [4.10c](https://github.com/AFLplusplus/AFLplusplus/releases)
|
||||||
|
|
||||||
GitHub version: 4.09a
|
GitHub version: 4.10c
|
||||||
|
|
||||||
Repository:
|
Repository:
|
||||||
[https://github.com/AFLplusplus/AFLplusplus](https://github.com/AFLplusplus/AFLplusplus)
|
[https://github.com/AFLplusplus/AFLplusplus](https://github.com/AFLplusplus/AFLplusplus)
|
||||||
|
12
TODO.md
12
TODO.md
@ -2,15 +2,21 @@
|
|||||||
|
|
||||||
## Must
|
## Must
|
||||||
|
|
||||||
|
- UI revamp
|
||||||
|
- hardened_usercopy=0 page_alloc.shuffle=0
|
||||||
|
- add value_profile but only enable after 15 minutes without finds
|
||||||
|
- cmplog max len, cmplog max items envs?
|
||||||
- adapt MOpt to new mutation engine
|
- adapt MOpt to new mutation engine
|
||||||
- Update afl->pending_not_fuzzed for MOpt
|
- Update afl->pending_not_fuzzed for MOpt
|
||||||
- cmplog rtn sanity check on fixed length? + no length 1
|
- cmplog rtn sanity check on fixed length? currently we ignore the length
|
||||||
- afl-showmap -f support
|
- afl-showmap -f support
|
||||||
- afl-fuzz multicore wrapper script
|
- afl-fuzz multicore wrapper script
|
||||||
|
- when trimming then perform crash detection
|
||||||
|
- problem: either -L0 and/or -p mmopt results in zero new coverage
|
||||||
|
|
||||||
|
|
||||||
## Should
|
## Should
|
||||||
|
|
||||||
- add value_profile but only enable after 15 minutes without finds?
|
|
||||||
- afl-crash-analysis
|
- afl-crash-analysis
|
||||||
- support persistent and deferred fork server in afl-showmap?
|
- support persistent and deferred fork server in afl-showmap?
|
||||||
- better autodetection of shifting runtime timeout values
|
- better autodetection of shifting runtime timeout values
|
||||||
|
38
afl-cmin
38
afl-cmin
@ -1,11 +1,15 @@
|
|||||||
#!/usr/bin/env sh
|
#!/usr/bin/env sh
|
||||||
|
SYS=$(uname -s)
|
||||||
|
test "$SYS" = "Darwin" && {
|
||||||
|
echo Error: afl-cmin does not work on Apple currently. please use afl-cmin.bash instead.
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
export AFL_QUIET=1
|
export AFL_QUIET=1
|
||||||
export ASAN_OPTIONS=detect_leaks=0
|
export ASAN_OPTIONS=detect_leaks=0
|
||||||
THISPATH=`dirname ${0}`
|
THISPATH=`dirname ${0}`
|
||||||
export PATH="${THISPATH}:$PATH"
|
export PATH="${THISPATH}:$PATH"
|
||||||
awk -f - -- ${@+"$@"} <<'EOF'
|
awk -f - -- ${@+"$@"} <<'EOF'
|
||||||
#!/usr/bin/awk -f
|
#!/usr/bin/awk -f
|
||||||
|
|
||||||
# awk script to minimize a test corpus of input files
|
# awk script to minimize a test corpus of input files
|
||||||
#
|
#
|
||||||
# based on afl-cmin bash script written by Michal Zalewski
|
# based on afl-cmin bash script written by Michal Zalewski
|
||||||
@ -259,22 +263,20 @@ BEGIN {
|
|||||||
# Do a sanity check to discourage the use of /tmp, since we can't really
|
# Do a sanity check to discourage the use of /tmp, since we can't really
|
||||||
# handle this safely from an awk script.
|
# handle this safely from an awk script.
|
||||||
|
|
||||||
#if (!ENVIRON["AFL_ALLOW_TMP"]) {
|
if (!ENVIRON["AFL_ALLOW_TMP"]) {
|
||||||
# dirlist[0] = in_dir
|
dirlist[0] = in_dir
|
||||||
# dirlist[1] = target_bin
|
dirlist[1] = target_bin
|
||||||
# dirlist[2] = out_dir
|
dirlist[2] = out_dir
|
||||||
# dirlist[3] = stdin_file
|
dirlist[3] = stdin_file
|
||||||
# "pwd" | getline dirlist[4] # current directory
|
"pwd" | getline dirlist[4] # current directory
|
||||||
# for (dirind in dirlist) {
|
for (dirind in dirlist) {
|
||||||
# dir = dirlist[dirind]
|
dir = dirlist[dirind]
|
||||||
#
|
if (dir ~ /^(\/var)?\/tmp/) {
|
||||||
# if (dir ~ /^(\/var)?\/tmp/) {
|
print "[-] Warning: do not use this script in /tmp or /var/tmp for security reasons." > "/dev/stderr"
|
||||||
# print "[-] Error: do not use this script in /tmp or /var/tmp." > "/dev/stderr"
|
}
|
||||||
# exit 1
|
}
|
||||||
# }
|
delete dirlist
|
||||||
# }
|
}
|
||||||
# delete dirlist
|
|
||||||
#}
|
|
||||||
|
|
||||||
if (threads && stdin_file) {
|
if (threads && stdin_file) {
|
||||||
print "[-] Error: -T and -f cannot be used together." > "/dev/stderr"
|
print "[-] Error: -T and -f cannot be used together." > "/dev/stderr"
|
||||||
@ -430,7 +432,7 @@ BEGIN {
|
|||||||
} else {
|
} else {
|
||||||
stat_format = "-f '%z %N'" # *BSD, MacOS
|
stat_format = "-f '%z %N'" # *BSD, MacOS
|
||||||
}
|
}
|
||||||
cmdline = "(cd "in_dir" && find . \\( ! -name \".*\" -a -type d \\) -o -type f -exec stat "stat_format" \\{\\} + | sort -k1n -k2r)"
|
cmdline = "(cd "in_dir" && find . \\( ! -name \".*\" -a -type d \\) -o -type f -exec stat "stat_format" \\{\\} + | sort -k1n -k2r) | grep -Ev '^0'"
|
||||||
#cmdline = "ls "in_dir" | (cd "in_dir" && xargs stat "stat_format" 2>/dev/null) | sort -k1n -k2r"
|
#cmdline = "ls "in_dir" | (cd "in_dir" && xargs stat "stat_format" 2>/dev/null) | sort -k1n -k2r"
|
||||||
#cmdline = "(cd "in_dir" && stat "stat_format" *) | sort -k1n -k2r"
|
#cmdline = "(cd "in_dir" && stat "stat_format" *) | sort -k1n -k2r"
|
||||||
#cmdline = "(cd "in_dir" && ls | xargs stat "stat_format" ) | sort -k1n -k2r"
|
#cmdline = "(cd "in_dir" && ls | xargs stat "stat_format" ) | sort -k1n -k2r"
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
#
|
#
|
||||||
# Copyright 2014, 2015 Google Inc. All rights reserved.
|
# Copyright 2014, 2015 Google Inc. All rights reserved.
|
||||||
#
|
#
|
||||||
# Copyright 2019-2023 AFLplusplus
|
# Copyright 2019-2024 AFLplusplus
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
@ -167,29 +167,28 @@ fi
|
|||||||
# Do a sanity check to discourage the use of /tmp, since we can't really
|
# Do a sanity check to discourage the use of /tmp, since we can't really
|
||||||
# handle this safely from a shell script.
|
# handle this safely from a shell script.
|
||||||
|
|
||||||
#if [ "$AFL_ALLOW_TMP" = "" ]; then
|
if [ "$AFL_ALLOW_TMP" = "" ]; then
|
||||||
#
|
|
||||||
# echo "$IN_DIR" | grep -qE '^(/var)?/tmp/'
|
echo "$IN_DIR" | grep -qE '^(/var)?/tmp/'
|
||||||
# T1="$?"
|
T1="$?"
|
||||||
#
|
|
||||||
# echo "$TARGET_BIN" | grep -qE '^(/var)?/tmp/'
|
echo "$TARGET_BIN" | grep -qE '^(/var)?/tmp/'
|
||||||
# T2="$?"
|
T2="$?"
|
||||||
#
|
|
||||||
# echo "$OUT_DIR" | grep -qE '^(/var)?/tmp/'
|
echo "$OUT_DIR" | grep -qE '^(/var)?/tmp/'
|
||||||
# T3="$?"
|
T3="$?"
|
||||||
#
|
|
||||||
# echo "$STDIN_FILE" | grep -qE '^(/var)?/tmp/'
|
echo "$STDIN_FILE" | grep -qE '^(/var)?/tmp/'
|
||||||
# T4="$?"
|
T4="$?"
|
||||||
#
|
|
||||||
# echo "$PWD" | grep -qE '^(/var)?/tmp/'
|
echo "$PWD" | grep -qE '^(/var)?/tmp/'
|
||||||
# T5="$?"
|
T5="$?"
|
||||||
#
|
|
||||||
# if [ "$T1" = "0" -o "$T2" = "0" -o "$T3" = "0" -o "$T4" = "0" -o "$T5" = "0" ]; then
|
if [ "$T1" = "0" -o "$T2" = "0" -o "$T3" = "0" -o "$T4" = "0" -o "$T5" = "0" ]; then
|
||||||
# echo "[-] Error: do not use this script in /tmp or /var/tmp." 1>&2
|
echo "[-] Warning: do not use this script in /tmp or /var/tmp for security reasons." 1>&2
|
||||||
# exit 1
|
fi
|
||||||
# fi
|
|
||||||
#
|
fi
|
||||||
#fi
|
|
||||||
|
|
||||||
# If @@ is specified, but there's no -f, let's come up with a temporary input
|
# If @@ is specified, but there's no -f, let's come up with a temporary input
|
||||||
# file name.
|
# file name.
|
||||||
@ -423,10 +422,14 @@ if [ "$THREADS" = "" ]; then
|
|||||||
|
|
||||||
ls "$IN_DIR" | while read -r fn; do
|
ls "$IN_DIR" | while read -r fn; do
|
||||||
|
|
||||||
CUR=$((CUR+1))
|
if [ -s "$IN_DIR/$fn" ]; then
|
||||||
printf "\\r Processing file $CUR/$IN_COUNT... "
|
|
||||||
|
|
||||||
"$SHOWMAP" -m "$MEM_LIMIT" -t "$TIMEOUT" -o "$TRACE_DIR/$fn" -Z $EXTRA_PAR -- "$@" <"$IN_DIR/$fn"
|
CUR=$((CUR+1))
|
||||||
|
printf "\\r Processing file $CUR/$IN_COUNT... "
|
||||||
|
|
||||||
|
"$SHOWMAP" -m "$MEM_LIMIT" -t "$TIMEOUT" -o "$TRACE_DIR/$fn" -Z $EXTRA_PAR -- "$@" <"$IN_DIR/$fn"
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
done
|
done
|
||||||
|
|
||||||
@ -434,11 +437,15 @@ if [ "$THREADS" = "" ]; then
|
|||||||
|
|
||||||
ls "$IN_DIR" | while read -r fn; do
|
ls "$IN_DIR" | while read -r fn; do
|
||||||
|
|
||||||
CUR=$((CUR+1))
|
if [ -s "$IN_DIR/$fn" ]; then
|
||||||
printf "\\r Processing file $CUR/$IN_COUNT... "
|
|
||||||
|
|
||||||
cp "$IN_DIR/$fn" "$STDIN_FILE"
|
CUR=$((CUR+1))
|
||||||
"$SHOWMAP" -m "$MEM_LIMIT" -t "$TIMEOUT" -o "$TRACE_DIR/$fn" -Z $EXTRA_PAR -H "$STDIN_FILE" -- "$@" </dev/null
|
printf "\\r Processing file $CUR/$IN_COUNT... "
|
||||||
|
|
||||||
|
cp "$IN_DIR/$fn" "$STDIN_FILE"
|
||||||
|
"$SHOWMAP" -m "$MEM_LIMIT" -t "$TIMEOUT" -o "$TRACE_DIR/$fn" -Z $EXTRA_PAR -H "$STDIN_FILE" -- "$@" </dev/null
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
done
|
done
|
||||||
|
|
||||||
@ -460,19 +467,26 @@ else
|
|||||||
|
|
||||||
cat $inputs | while read -r fn; do
|
cat $inputs | while read -r fn; do
|
||||||
|
|
||||||
"$SHOWMAP" -m "$MEM_LIMIT" -t "$TIMEOUT" -o "$TRACE_DIR/$fn" -Z $EXTRA_PAR -- "$@" <"$IN_DIR/$fn"
|
if [ -s "$IN_DIR/$fn" ]; then
|
||||||
|
|
||||||
|
"$SHOWMAP" -m "$MEM_LIMIT" -t "$TIMEOUT" -o "$TRACE_DIR/$fn" -Z $EXTRA_PAR -- "$@" <"$IN_DIR/$fn"
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
done
|
done
|
||||||
|
|
||||||
else
|
else
|
||||||
|
|
||||||
STDIN_FILE="$inputs.$$"
|
if [ -s "$IN_DIR/$fn" ]; then
|
||||||
cat $inputs | while read -r fn; do
|
STDIN_FILE="$inputs.$$"
|
||||||
|
cat $inputs | while read -r fn; do
|
||||||
|
|
||||||
cp "$IN_DIR/$fn" "$STDIN_FILE"
|
cp "$IN_DIR/$fn" "$STDIN_FILE"
|
||||||
"$SHOWMAP" -m "$MEM_LIMIT" -t "$TIMEOUT" -o "$TRACE_DIR/$fn" -Z $EXTRA_PAR -H "$STDIN_FILE" -- "$@" </dev/null
|
"$SHOWMAP" -m "$MEM_LIMIT" -t "$TIMEOUT" -o "$TRACE_DIR/$fn" -Z $EXTRA_PAR -H "$STDIN_FILE" -- "$@" </dev/null
|
||||||
|
|
||||||
done
|
done
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -38,6 +38,7 @@ fi
|
|||||||
|
|
||||||
echo
|
echo
|
||||||
PLATFORM=`uname -s`
|
PLATFORM=`uname -s`
|
||||||
|
ARCH=`uname -m`
|
||||||
|
|
||||||
# check that we're on Mac
|
# check that we're on Mac
|
||||||
if [[ "$PLATFORM" = "Darwin" ]] ; then
|
if [[ "$PLATFORM" = "Darwin" ]] ; then
|
||||||
@ -87,6 +88,13 @@ if [[ "$PLATFORM" = "Darwin" ]] ; then
|
|||||||
</plist>
|
</plist>
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
if [[ "$ARCH" = "x86_64" ]]; then
|
||||||
|
echo "Disabling ASLR system wide"
|
||||||
|
nvram boot-args="no_aslr=1"
|
||||||
|
else
|
||||||
|
echo NOTICE: on ARM64 we do not know currently how to disable system wide ASLR, please report if you know how.
|
||||||
|
fi
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo "Reboot and enjoy your fuzzing"
|
echo "Reboot and enjoy your fuzzing"
|
||||||
exit 0
|
exit 0
|
||||||
|
@ -25,6 +25,7 @@ echo "WARNING: this reduces the security of the system!"
|
|||||||
echo
|
echo
|
||||||
if [ '!' "$EUID" = 0 ] && [ '!' `id -u` = 0 ] ; then
|
if [ '!' "$EUID" = 0 ] && [ '!' `id -u` = 0 ] ; then
|
||||||
echo "Warning: you need to be root to run this!"
|
echo "Warning: you need to be root to run this!"
|
||||||
|
sleep 1
|
||||||
# we do not exit as other mechanisms exist that allows to do this than
|
# we do not exit as other mechanisms exist that allows to do this than
|
||||||
# being root. let the errors speak for themselves.
|
# being root. let the errors speak for themselves.
|
||||||
fi
|
fi
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
# Originally written by Michal Zalewski
|
# Originally written by Michal Zalewski
|
||||||
#
|
#
|
||||||
# Copyright 2015 Google Inc. All rights reserved.
|
# Copyright 2015 Google Inc. All rights reserved.
|
||||||
# Copyright 2019-2023 AFLplusplus Project. All rights reserved.
|
# Copyright 2019-2024 AFLplusplus Project. All rights reserved.
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
@ -1,4 +0,0 @@
|
|||||||
CPU | Mz | exec/s | afl-*-config |
|
|
||||||
========================================|======|========|==============|
|
|
||||||
CPU 12th Gen Intel(R) Core(TM) i7-1270P | 4200 | 12750 | both |
|
|
||||||
AMD EPYC 7282 16-Core Processor | 3190 | 10060 | both |
|
|
9
benchmark/COMPARISON.md
Normal file
9
benchmark/COMPARISON.md
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
CPU | MHz | threads | singlecore | multicore | afl-*-config |
|
||||||
|
====================================================|=======|=========|============|===========|==============|
|
||||||
|
Raspberry Pi 5 | 2400 | 4 | 25786 | 101114 | both |
|
||||||
|
AMD EPYC 7282 16-Core Processor | 3194 | 32 | 87199 | 769001 | both |
|
||||||
|
AMD Ryzen 5 PRO 4650G with Radeon Graphics | 3700 | 12 | 95356 | 704840 | both |
|
||||||
|
Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz | 4995 | 16 | 120064 | 1168943 | both |
|
||||||
|
12th Gen Intel(R) Core(TM) i7-1270P | 4761 | 16 | 149778 | 641219 | both |
|
||||||
|
AMD Ryzen 9 5950X 16-Core Processor | 4792 | 32 | 161690 | 2339763 | both |
|
||||||
|
Apple Mac Studio M2 Ultra 2023, Linux VM guest | 3500 | 16 | 163570 | 1157465 | both |
|
59
benchmark/README.md
Normal file
59
benchmark/README.md
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
# American Fuzzy Lop plus plus (AFL++)
|
||||||
|
|
||||||
|
## benchmarking
|
||||||
|
|
||||||
|
This directory contains benchmarking tools that allow you to compare one machine
|
||||||
|
with another in terms of raw ability to execute a fuzzing target repeatedly.
|
||||||
|
|
||||||
|
To achieve this, we use a sample program ("test-instr.c") where each path is
|
||||||
|
equally likely, supply it a single seed, and tell AFL to exit after one run of
|
||||||
|
deterministic mutations against that seed.
|
||||||
|
|
||||||
|
**Note that this is not a real-world scenario!**
|
||||||
|
Because the target does basically nothing this is rather a stress test on
|
||||||
|
Kernel I/O / context switching.
|
||||||
|
For this reason you will not see a difference if you run the multicore test
|
||||||
|
with 20 or 40 threads - or even see the performance decline the more threads
|
||||||
|
(`-f` parameter) you use. In a real-world scenario you can expect to gain
|
||||||
|
exec/s until 40-60 threads (if you have that many available on your CPU).
|
||||||
|
|
||||||
|
Usage example:
|
||||||
|
|
||||||
|
```
|
||||||
|
cd aflplusplus/benchmark
|
||||||
|
python3 benchmark.py
|
||||||
|
[*] Ready, starting benchmark...
|
||||||
|
[*] Compiling the test-instr-persist-shmem fuzzing harness for the benchmark to use.
|
||||||
|
[*] singlecore test-instr-persist-shmem run 1 of 2, execs/s: 124883.62
|
||||||
|
[*] singlecore test-instr-persist-shmem run 2 of 2, execs/s: 126704.93
|
||||||
|
[*] Average execs/sec for this test across all runs was: 125794.28
|
||||||
|
[*] Using 16 fuzzers for multicore fuzzing (use --fuzzers to override).
|
||||||
|
[*] multicore test-instr-persist-shmem run 1 of 2, execs/s: 1179822.66
|
||||||
|
[*] multicore test-instr-persist-shmem run 2 of 2, execs/s: 1175584.09
|
||||||
|
[*] Average execs/sec for this test across all runs was: 1177703.38
|
||||||
|
[*] Results have been written to the benchmark-results.jsonl file.
|
||||||
|
[*] Results have been written to the COMPARISON.md file.
|
||||||
|
```
|
||||||
|
|
||||||
|
By default, the script will use a number of parallel fuzzers equal to your
|
||||||
|
available CPUs/threads (change with `--fuzzers`), and will perform each test
|
||||||
|
three times and average the result (change with `--runs`).
|
||||||
|
|
||||||
|
The script will use multicore fuzzing instead of singlecore by default (change
|
||||||
|
with `--mode singlecore`) and use a persistent-mode shared memory harness for
|
||||||
|
optimal speed (change with `--target test-instr`).
|
||||||
|
|
||||||
|
Feel free to submit the resulting line for your CPU added to the COMPARISON.md
|
||||||
|
and benchmark-results.jsonl files back to AFL++ in a pull request.
|
||||||
|
|
||||||
|
Each run writes results to [benchmark-results.jsonl](benchmark-results.jsonl)
|
||||||
|
in [JSON Lines](https://jsonlines.org/) format, ready to be pulled in to other
|
||||||
|
tools such as [jq -cs](https://jqlang.github.io/jq/) or
|
||||||
|
[pandas](https://pandas.pydata.org/) for analysis.
|
||||||
|
|
||||||
|
## Data analysis
|
||||||
|
|
||||||
|
There is sample data in [benchmark-results.jsonl](benchmark-results.jsonl), and
|
||||||
|
a Jupyter notebook for exploring the results and suggesting their meaning at
|
||||||
|
[benchmark.ipynb](benchmark.ipynb).
|
||||||
|
|
420
benchmark/benchmark-results.jsonl
Normal file
420
benchmark/benchmark-results.jsonl
Normal file
@ -0,0 +1,420 @@
|
|||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4788.77, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr": {"singlecore": {"execs_per_sec": 9845.64, "execs_total": 98545, "fuzzers_used": 1}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4989.281, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"singlecore": {"execs_per_sec": 125682.73, "execs_total": 1257330, "fuzzers_used": 1}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4799.415, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 120293.77, "execs_total": 1203058, "fuzzers_used": 1}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4703.293, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 231429.96, "execs_total": 2314531, "fuzzers_used": 2}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4800.375, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 346759.33, "execs_total": 3468290, "fuzzers_used": 3}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4915.27, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 455340.06, "execs_total": 4554427, "fuzzers_used": 4}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4701.051, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 568405.15, "execs_total": 5685076, "fuzzers_used": 5}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4704.999, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 678030.96, "execs_total": 6781781, "fuzzers_used": 6}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4800.438, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 782585.04, "execs_total": 7827974, "fuzzers_used": 7}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4794.851, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 893618.35, "execs_total": 8938405, "fuzzers_used": 8}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4998.383, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 956026.15, "execs_total": 9562791, "fuzzers_used": 9}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4997.352, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 984942.13, "execs_total": 9853724, "fuzzers_used": 10}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4987.681, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1016758.62, "execs_total": 10172892, "fuzzers_used": 11}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4998.196, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1053087.9, "execs_total": 10536439, "fuzzers_used": 12}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4995.211, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1085797.87, "execs_total": 10865305, "fuzzers_used": 13}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4997.577, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1110640.2, "execs_total": 11114033, "fuzzers_used": 14}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4799.955, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1138984.22, "execs_total": 11397389, "fuzzers_used": 15}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4997.247, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1168943.19, "execs_total": 11699439, "fuzzers_used": 16}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4994.207, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1135093.91, "execs_total": 11360219, "fuzzers_used": 17}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4994.47, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1160430.45, "execs_total": 11614570, "fuzzers_used": 18}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4991.188, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1155769.97, "execs_total": 11569540, "fuzzers_used": 19}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4997.63, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1150156.26, "execs_total": 11509407, "fuzzers_used": 20}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4998.227, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1136873.58, "execs_total": 11377110, "fuzzers_used": 21}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4998.317, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1112404.25, "execs_total": 11134086, "fuzzers_used": 22}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 5000.851, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1143131.72, "execs_total": 11440024, "fuzzers_used": 23}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4998.261, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1143931.38, "execs_total": 11448786, "fuzzers_used": 24}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4997.259, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1102090.61, "execs_total": 11028561, "fuzzers_used": 25}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4998.149, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1116518.7, "execs_total": 11172681, "fuzzers_used": 26}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4801.01, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1099224.19, "execs_total": 11000537, "fuzzers_used": 27}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4998.448, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1114945.37, "execs_total": 11158802, "fuzzers_used": 28}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4997.663, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1110889.91, "execs_total": 11118113, "fuzzers_used": 29}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4997.741, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1058548.28, "execs_total": 10595540, "fuzzers_used": 30}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4998.852, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1119804.85, "execs_total": 11208645, "fuzzers_used": 31}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4998.417, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1118828.99, "execs_total": 11197813, "fuzzers_used": 32}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 5000.682, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1093426.61, "execs_total": 10942324, "fuzzers_used": 33}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4998.248, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1108123.59, "execs_total": 11090315, "fuzzers_used": 34}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4998.053, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1041486.52, "execs_total": 10422413, "fuzzers_used": 35}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4998.299, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1092395.61, "execs_total": 10932107, "fuzzers_used": 36}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4996.081, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr": {"singlecore": {"execs_per_sec": 8278.64, "execs_total": 82894, "fuzzers_used": 1}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4994.118, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 90641.62, "execs_total": 906960, "fuzzers_used": 1}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4996.588, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 178184.19, "execs_total": 1782109, "fuzzers_used": 2}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4996.204, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 262652.86, "execs_total": 2627228, "fuzzers_used": 3}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4996.829, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 339119.32, "execs_total": 3391956, "fuzzers_used": 4}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4997.205, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 420239.94, "execs_total": 4202989, "fuzzers_used": 5}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4997.0, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 498062.02, "execs_total": 4981367, "fuzzers_used": 6}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 5000.407, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 578495.44, "execs_total": 5786691, "fuzzers_used": 7}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 5002.997, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 661836.22, "execs_total": 6620265, "fuzzers_used": 8}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4996.952, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 684808.49, "execs_total": 6850000, "fuzzers_used": 9}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4996.99, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 707094.65, "execs_total": 7074048, "fuzzers_used": 10}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4998.003, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 732106.17, "execs_total": 7325352, "fuzzers_used": 11}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4998.488, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 752910.17, "execs_total": 7533775, "fuzzers_used": 12}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 5003.679, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 776179.85, "execs_total": 7767507, "fuzzers_used": 13}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4995.45, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 797520.58, "execs_total": 7981534, "fuzzers_used": 14}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4997.313, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 822235.41, "execs_total": 8228941, "fuzzers_used": 15}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4996.723, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 843897.51, "execs_total": 8445693, "fuzzers_used": 16}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4996.488, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 843177.15, "execs_total": 8438493, "fuzzers_used": 17}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4997.299, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 844779.09, "execs_total": 8456834, "fuzzers_used": 18}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4996.662, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 846060.74, "execs_total": 8465728, "fuzzers_used": 19}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4996.922, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 847556.23, "execs_total": 8482537, "fuzzers_used": 20}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4997.098, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 844022.97, "execs_total": 8447616, "fuzzers_used": 21}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4996.352, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 845818.7, "execs_total": 8464237, "fuzzers_used": 22}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4995.457, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 844118.27, "execs_total": 8448858, "fuzzers_used": 23}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4997.019, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 837189.02, "execs_total": 8379746, "fuzzers_used": 24}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4995.513, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 834712.31, "execs_total": 8354719, "fuzzers_used": 25}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4996.891, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 836344.12, "execs_total": 8370166, "fuzzers_used": 26}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4996.494, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 827784.91, "execs_total": 8283782, "fuzzers_used": 27}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4996.761, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 828641.27, "execs_total": 8293602, "fuzzers_used": 28}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4997.115, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 826123.67, "execs_total": 8268211, "fuzzers_used": 29}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4993.515, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 817765.77, "execs_total": 8184720, "fuzzers_used": 30}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4996.555, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 816556.66, "execs_total": 8171816, "fuzzers_used": 31}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4996.999, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 812661.77, "execs_total": 8132767, "fuzzers_used": 32}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4995.561, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 805352.16, "execs_total": 8060482, "fuzzers_used": 33}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4996.938, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 815888.26, "execs_total": 8164454, "fuzzers_used": 34}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4996.951, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 812348.56, "execs_total": 8129441, "fuzzers_used": 35}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4999.444, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 817278.03, "execs_total": 8178918, "fuzzers_used": 36}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4996.133, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 91247.98, "execs_total": 912571, "fuzzers_used": 1}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4997.029, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 177503.74, "execs_total": 1775569, "fuzzers_used": 2}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4996.516, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 263559.94, "execs_total": 2635863, "fuzzers_used": 3}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4996.946, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 339880.84, "execs_total": 3399660, "fuzzers_used": 4}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4997.539, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 418569.46, "execs_total": 4186780, "fuzzers_used": 5}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4995.53, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 496208.2, "execs_total": 4962992, "fuzzers_used": 6}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4998.015, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 580870.62, "execs_total": 5809953, "fuzzers_used": 7}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4998.662, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 662910.24, "execs_total": 6631172, "fuzzers_used": 8}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4996.8, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 683654.43, "execs_total": 6838092, "fuzzers_used": 9}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4996.849, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 707555.71, "execs_total": 7078261, "fuzzers_used": 10}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 5007.628, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 732211.35, "execs_total": 7325661, "fuzzers_used": 11}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4981.601, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 756121.92, "execs_total": 7565074, "fuzzers_used": 12}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4996.041, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 774101.97, "execs_total": 7745053, "fuzzers_used": 13}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 5004.554, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 796439.54, "execs_total": 7972225, "fuzzers_used": 14}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4996.433, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 822652.36, "execs_total": 8232836, "fuzzers_used": 15}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4996.063, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 846458.67, "execs_total": 8473949, "fuzzers_used": 16}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4996.85, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 847285.31, "execs_total": 8479183, "fuzzers_used": 17}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4996.627, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 847278.34, "execs_total": 8481577, "fuzzers_used": 18}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 5002.007, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 849345.2, "execs_total": 8500890, "fuzzers_used": 19}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4998.497, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 848498.04, "execs_total": 8491840, "fuzzers_used": 20}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4997.084, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 848737.28, "execs_total": 8494747, "fuzzers_used": 21}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4995.872, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 847610.49, "execs_total": 8484864, "fuzzers_used": 22}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4997.036, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 846329.82, "execs_total": 8471670, "fuzzers_used": 23}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4995.731, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 839140.26, "execs_total": 8397496, "fuzzers_used": 24}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4988.743, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 843648.98, "execs_total": 8444091, "fuzzers_used": 25}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 5004.084, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 835215.19, "execs_total": 8359949, "fuzzers_used": 26}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4998.828, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 833416.5, "execs_total": 8340275, "fuzzers_used": 27}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4995.795, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 826512.71, "execs_total": 8272574, "fuzzers_used": 28}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4997.022, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 828656.04, "execs_total": 8292856, "fuzzers_used": 29}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4996.939, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 823292.55, "execs_total": 8239885, "fuzzers_used": 30}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4995.233, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 824657.95, "execs_total": 8252812, "fuzzers_used": 31}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4995.909, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 817807.44, "execs_total": 8183838, "fuzzers_used": 32}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4995.834, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 815344.89, "execs_total": 8160193, "fuzzers_used": 33}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4997.968, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 814327.97, "execs_total": 8149984, "fuzzers_used": 34}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4996.625, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 819612.64, "execs_total": 8202605, "fuzzers_used": 35}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4998.404, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 813155.19, "execs_total": 8137546, "fuzzers_used": 36}}}}
|
||||||
|
{"config": {"afl_persistent_config": false, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 5001.911, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr": {"singlecore": {"execs_per_sec": 8391.52, "execs_total": 83932, "fuzzers_used": 1}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4980.444, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr": {"singlecore": {"execs_per_sec": 10754.79, "execs_total": 107720, "fuzzers_used": 1}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 5000.011, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 126201.28, "execs_total": 1262139, "fuzzers_used": 1}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4993.941, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 245701.79, "execs_total": 2457750, "fuzzers_used": 2}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4983.297, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 361167.18, "execs_total": 3612273, "fuzzers_used": 3}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4994.008, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 475221.97, "execs_total": 4752815, "fuzzers_used": 4}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4996.977, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 586393.43, "execs_total": 5865460, "fuzzers_used": 5}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4996.97, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 690946.36, "execs_total": 6910846, "fuzzers_used": 6}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4997.017, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 801029.31, "execs_total": 8011774, "fuzzers_used": 7}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4998.617, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 913876.89, "execs_total": 9140715, "fuzzers_used": 8}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4996.997, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 946293.38, "execs_total": 9464848, "fuzzers_used": 9}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4996.162, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 980031.45, "execs_total": 9803628, "fuzzers_used": 10}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4994.223, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1015241.63, "execs_total": 10157948, "fuzzers_used": 11}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4994.761, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1042290.69, "execs_total": 10427527, "fuzzers_used": 12}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4996.045, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1073567.99, "execs_total": 10739590, "fuzzers_used": 13}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4995.484, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1119312.88, "execs_total": 11199130, "fuzzers_used": 14}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4994.729, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1156363.75, "execs_total": 11573213, "fuzzers_used": 15}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4996.146, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1183713.3, "execs_total": 11848245, "fuzzers_used": 16}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4997.048, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1187603.56, "execs_total": 11886825, "fuzzers_used": 17}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4986.845, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1190369.21, "execs_total": 11914954, "fuzzers_used": 18}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4985.364, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1188828.6, "execs_total": 11902947, "fuzzers_used": 19}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4996.108, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1187617.46, "execs_total": 11887934, "fuzzers_used": 20}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4997.754, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1188490.16, "execs_total": 11894967, "fuzzers_used": 21}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4996.129, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1184138.92, "execs_total": 11850653, "fuzzers_used": 22}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4997.048, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1189374.23, "execs_total": 11903803, "fuzzers_used": 23}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4996.261, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1178947.43, "execs_total": 11800850, "fuzzers_used": 24}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4997.422, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1173540.28, "execs_total": 11743120, "fuzzers_used": 25}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4996.909, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1168471.78, "execs_total": 11696401, "fuzzers_used": 26}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4966.966, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1169320.61, "execs_total": 11703900, "fuzzers_used": 27}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4997.207, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1165434.17, "execs_total": 11661131, "fuzzers_used": 28}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4999.554, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1161113.26, "execs_total": 11619771, "fuzzers_used": 29}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4994.822, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1155066.44, "execs_total": 11560147, "fuzzers_used": 30}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4997.061, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1145196.35, "execs_total": 11461349, "fuzzers_used": 31}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4996.006, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1151794.28, "execs_total": 11526764, "fuzzers_used": 32}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4995.939, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1151652.84, "execs_total": 11526720, "fuzzers_used": 33}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4997.002, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1153215.56, "execs_total": 11539780, "fuzzers_used": 34}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4996.456, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1146882.5, "execs_total": 11478112, "fuzzers_used": 35}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": false, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4996.183, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1155253.95, "execs_total": 11561694, "fuzzers_used": 36}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4848.974, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr": {"multicore": {"execs_per_sec": 10714.79, "execs_total": 107180, "fuzzers_used": 1}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4998.353, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr": {"multicore": {"execs_per_sec": 20493.07, "execs_total": 205279, "fuzzers_used": 2}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4998.198, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr": {"multicore": {"execs_per_sec": 29660.06, "execs_total": 297006, "fuzzers_used": 3}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4998.015, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr": {"multicore": {"execs_per_sec": 37875.57, "execs_total": 379078, "fuzzers_used": 4}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4996.975, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr": {"multicore": {"execs_per_sec": 46326.75, "execs_total": 463731, "fuzzers_used": 5}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4998.579, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr": {"multicore": {"execs_per_sec": 54595.48, "execs_total": 546283, "fuzzers_used": 6}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4983.814, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr": {"multicore": {"execs_per_sec": 62720.98, "execs_total": 628151, "fuzzers_used": 7}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4997.617, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr": {"multicore": {"execs_per_sec": 70777.99, "execs_total": 708505, "fuzzers_used": 8}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4998.286, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr": {"multicore": {"execs_per_sec": 74236.02, "execs_total": 743157, "fuzzers_used": 9}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4799.516, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr": {"multicore": {"execs_per_sec": 78134.94, "execs_total": 782272, "fuzzers_used": 10}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4911.536, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr": {"multicore": {"execs_per_sec": 81886.33, "execs_total": 819649, "fuzzers_used": 11}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4996.199, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr": {"multicore": {"execs_per_sec": 85923.44, "execs_total": 860033, "fuzzers_used": 12}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4997.447, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr": {"multicore": {"execs_per_sec": 89696.95, "execs_total": 897746, "fuzzers_used": 13}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4998.496, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr": {"multicore": {"execs_per_sec": 93540.52, "execs_total": 936217, "fuzzers_used": 14}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4997.936, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr": {"multicore": {"execs_per_sec": 97641.51, "execs_total": 977546, "fuzzers_used": 15}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4991.829, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr": {"multicore": {"execs_per_sec": 101692.65, "execs_total": 1017683, "fuzzers_used": 16}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4998.489, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr": {"multicore": {"execs_per_sec": 101236.75, "execs_total": 1013188, "fuzzers_used": 17}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4998.352, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr": {"multicore": {"execs_per_sec": 101006.28, "execs_total": 1011004, "fuzzers_used": 18}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4999.894, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr": {"multicore": {"execs_per_sec": 99952.26, "execs_total": 1000431, "fuzzers_used": 19}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4942.12, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr": {"multicore": {"execs_per_sec": 99798.64, "execs_total": 998795, "fuzzers_used": 20}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4997.686, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr": {"multicore": {"execs_per_sec": 99018.86, "execs_total": 991012, "fuzzers_used": 21}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4998.308, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr": {"multicore": {"execs_per_sec": 98600.87, "execs_total": 986643, "fuzzers_used": 22}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4997.683, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr": {"multicore": {"execs_per_sec": 98634.02, "execs_total": 987082, "fuzzers_used": 23}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4998.457, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr": {"multicore": {"execs_per_sec": 98352.9, "execs_total": 984071, "fuzzers_used": 24}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4997.733, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr": {"multicore": {"execs_per_sec": 98118.63, "execs_total": 981865, "fuzzers_used": 25}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4994.474, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr": {"multicore": {"execs_per_sec": 97752.45, "execs_total": 978192, "fuzzers_used": 26}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4853.378, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr": {"multicore": {"execs_per_sec": 97864.07, "execs_total": 979334, "fuzzers_used": 27}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4997.484, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr": {"multicore": {"execs_per_sec": 97821.8, "execs_total": 978814, "fuzzers_used": 28}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4996.738, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr": {"multicore": {"execs_per_sec": 97564.87, "execs_total": 976335, "fuzzers_used": 29}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4997.341, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr": {"multicore": {"execs_per_sec": 98508.1, "execs_total": 985853, "fuzzers_used": 30}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4998.773, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr": {"multicore": {"execs_per_sec": 98238.96, "execs_total": 983062, "fuzzers_used": 31}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4998.037, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr": {"multicore": {"execs_per_sec": 98363.93, "execs_total": 984411, "fuzzers_used": 32}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4998.448, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr": {"multicore": {"execs_per_sec": 96758.69, "execs_total": 968157, "fuzzers_used": 33}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4998.238, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr": {"multicore": {"execs_per_sec": 96327.0, "execs_total": 964046, "fuzzers_used": 34}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4997.619, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr": {"multicore": {"execs_per_sec": 95913.98, "execs_total": 959817, "fuzzers_used": 35}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "i9-9900k, 16GB DDR4-3000, Arch Linux", "compiler": "clang version 16.0.6", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4998.076, "cpu_model": "Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz", "cpu_threads": 16}, "targets": {"test-instr": {"multicore": {"execs_per_sec": 95871.39, "execs_total": 959318, "fuzzers_used": 36}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "Apple Mac Studio M2 Ultra 2023, Linux VM guest, 16 threads assigned to VM", "compiler": "Ubuntu clang version 16.0.6", "target_arch": "aarch64-unknown-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3500.0, "cpu_model": "Apple Mac Studio M2 Ultra 2023", "cpu_threads": 16}, "targets": {"test-instr": {"singlecore": {"execs_per_sec": 5741.89, "execs_total": 57505, "fuzzers_used": 1}}, "test-instr-persist-shmem": {"singlecore": {"execs_per_sec": 163570.34, "execs_total": 1635867, "fuzzers_used": 1}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "Apple Mac Studio M2 Ultra 2023, Linux VM guest, 16 threads assigned to VM", "compiler": "Ubuntu clang version 16.0.6", "target_arch": "aarch64-unknown-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3500.0, "cpu_model": "Apple Mac Studio M2 Ultra 2023", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 164224.43, "execs_total": 1642737, "fuzzers_used": 1}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "Apple Mac Studio M2 Ultra 2023, Linux VM guest, 16 threads assigned to VM", "compiler": "Ubuntu clang version 16.0.6", "target_arch": "aarch64-unknown-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3500.0, "cpu_model": "Apple Mac Studio M2 Ultra 2023", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 167222.58, "execs_total": 1672393, "fuzzers_used": 1}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "Apple Mac Studio M2 Ultra 2023, Linux VM guest, 16 threads assigned to VM", "compiler": "Ubuntu clang version 16.0.6", "target_arch": "aarch64-unknown-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3500.0, "cpu_model": "Apple Mac Studio M2 Ultra 2023", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 306547.24, "execs_total": 3065934, "fuzzers_used": 2}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "Apple Mac Studio M2 Ultra 2023, Linux VM guest, 16 threads assigned to VM", "compiler": "Ubuntu clang version 16.0.6", "target_arch": "aarch64-unknown-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3500.0, "cpu_model": "Apple Mac Studio M2 Ultra 2023", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 436010.2, "execs_total": 4360827, "fuzzers_used": 3}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "Apple Mac Studio M2 Ultra 2023, Linux VM guest, 16 threads assigned to VM", "compiler": "Ubuntu clang version 16.0.6", "target_arch": "aarch64-unknown-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3500.0, "cpu_model": "Apple Mac Studio M2 Ultra 2023", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 536415.92, "execs_total": 5365101, "fuzzers_used": 4}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "Apple Mac Studio M2 Ultra 2023, Linux VM guest, 16 threads assigned to VM", "compiler": "Ubuntu clang version 16.0.6", "target_arch": "aarch64-unknown-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3500.0, "cpu_model": "Apple Mac Studio M2 Ultra 2023", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 622104.43, "execs_total": 6222784, "fuzzers_used": 5}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "Apple Mac Studio M2 Ultra 2023, Linux VM guest, 16 threads assigned to VM", "compiler": "Ubuntu clang version 16.0.6", "target_arch": "aarch64-unknown-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3500.0, "cpu_model": "Apple Mac Studio M2 Ultra 2023", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 729436.2, "execs_total": 7295214, "fuzzers_used": 6}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "Apple Mac Studio M2 Ultra 2023, Linux VM guest, 16 threads assigned to VM", "compiler": "Ubuntu clang version 16.0.6", "target_arch": "aarch64-unknown-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3500.0, "cpu_model": "Apple Mac Studio M2 Ultra 2023", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 820258.88, "execs_total": 8203409, "fuzzers_used": 7}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "Apple Mac Studio M2 Ultra 2023, Linux VM guest, 16 threads assigned to VM", "compiler": "Ubuntu clang version 16.0.6", "target_arch": "aarch64-unknown-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3500.0, "cpu_model": "Apple Mac Studio M2 Ultra 2023", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 884746.31, "execs_total": 8848458, "fuzzers_used": 8}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "Apple Mac Studio M2 Ultra 2023, Linux VM guest, 16 threads assigned to VM", "compiler": "Ubuntu clang version 16.0.6", "target_arch": "aarch64-unknown-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3500.0, "cpu_model": "Apple Mac Studio M2 Ultra 2023", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 947308.55, "execs_total": 9474351, "fuzzers_used": 9}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "Apple Mac Studio M2 Ultra 2023, Linux VM guest, 16 threads assigned to VM", "compiler": "Ubuntu clang version 16.0.6", "target_arch": "aarch64-unknown-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3500.0, "cpu_model": "Apple Mac Studio M2 Ultra 2023", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 985953.62, "execs_total": 9860922, "fuzzers_used": 10}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "Apple Mac Studio M2 Ultra 2023, Linux VM guest, 16 threads assigned to VM", "compiler": "Ubuntu clang version 16.0.6", "target_arch": "aarch64-unknown-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3500.0, "cpu_model": "Apple Mac Studio M2 Ultra 2023", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1009716.71, "execs_total": 10098454, "fuzzers_used": 11}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "Apple Mac Studio M2 Ultra 2023, Linux VM guest, 16 threads assigned to VM", "compiler": "Ubuntu clang version 16.0.6", "target_arch": "aarch64-unknown-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3500.0, "cpu_model": "Apple Mac Studio M2 Ultra 2023", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1041437.1, "execs_total": 10415844, "fuzzers_used": 12}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "Apple Mac Studio M2 Ultra 2023, Linux VM guest, 16 threads assigned to VM", "compiler": "Ubuntu clang version 16.0.6", "target_arch": "aarch64-unknown-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3500.0, "cpu_model": "Apple Mac Studio M2 Ultra 2023", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1068180.17, "execs_total": 10683116, "fuzzers_used": 13}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "Apple Mac Studio M2 Ultra 2023, Linux VM guest, 16 threads assigned to VM", "compiler": "Ubuntu clang version 16.0.6", "target_arch": "aarch64-unknown-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3500.0, "cpu_model": "Apple Mac Studio M2 Ultra 2023", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1108873.82, "execs_total": 11089926, "fuzzers_used": 14}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "Apple Mac Studio M2 Ultra 2023, Linux VM guest, 16 threads assigned to VM", "compiler": "Ubuntu clang version 16.0.6", "target_arch": "aarch64-unknown-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3500.0, "cpu_model": "Apple Mac Studio M2 Ultra 2023", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1134135.0, "execs_total": 11354464, "fuzzers_used": 15}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "Apple Mac Studio M2 Ultra 2023, Linux VM guest, 16 threads assigned to VM", "compiler": "Ubuntu clang version 16.0.6", "target_arch": "aarch64-unknown-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3500.0, "cpu_model": "Apple Mac Studio M2 Ultra 2023", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1157465.79, "execs_total": 11582583, "fuzzers_used": 16}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "Apple Mac Studio M2 Ultra 2023, Linux VM guest, 16 threads assigned to VM", "compiler": "Ubuntu clang version 16.0.6", "target_arch": "aarch64-unknown-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3500.0, "cpu_model": "Apple Mac Studio M2 Ultra 2023", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1122785.14, "execs_total": 11235138, "fuzzers_used": 17}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "Apple Mac Studio M2 Ultra 2023, Linux VM guest, 16 threads assigned to VM", "compiler": "Ubuntu clang version 16.0.6", "target_arch": "aarch64-unknown-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3500.0, "cpu_model": "Apple Mac Studio M2 Ultra 2023", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1094132.3, "execs_total": 10950326, "fuzzers_used": 18}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "Apple Mac Studio M2 Ultra 2023, Linux VM guest, 16 threads assigned to VM", "compiler": "Ubuntu clang version 16.0.6", "target_arch": "aarch64-unknown-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3500.0, "cpu_model": "Apple Mac Studio M2 Ultra 2023", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1041102.04, "execs_total": 10420102, "fuzzers_used": 19}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "Apple Mac Studio M2 Ultra 2023, Linux VM guest, 16 threads assigned to VM", "compiler": "Ubuntu clang version 16.0.6", "target_arch": "aarch64-unknown-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3500.0, "cpu_model": "Apple Mac Studio M2 Ultra 2023", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1022474.0, "execs_total": 10236560, "fuzzers_used": 20}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "Apple Mac Studio M2 Ultra 2023, Linux VM guest, 16 threads assigned to VM", "compiler": "Ubuntu clang version 16.0.6", "target_arch": "aarch64-unknown-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3500.0, "cpu_model": "Apple Mac Studio M2 Ultra 2023", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 960681.48, "execs_total": 9618077, "fuzzers_used": 21}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "Apple Mac Studio M2 Ultra 2023, Linux VM guest, 16 threads assigned to VM", "compiler": "Ubuntu clang version 16.0.6", "target_arch": "aarch64-unknown-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3500.0, "cpu_model": "Apple Mac Studio M2 Ultra 2023", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 853680.22, "execs_total": 8545665, "fuzzers_used": 22}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "Apple Mac Studio M2 Ultra 2023, Linux VM guest, 16 threads assigned to VM", "compiler": "Ubuntu clang version 16.0.6", "target_arch": "aarch64-unknown-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3500.0, "cpu_model": "Apple Mac Studio M2 Ultra 2023", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 799719.75, "execs_total": 8005071, "fuzzers_used": 23}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "Apple Mac Studio M2 Ultra 2023, Linux VM guest, 16 threads assigned to VM", "compiler": "Ubuntu clang version 16.0.6", "target_arch": "aarch64-unknown-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3500.0, "cpu_model": "Apple Mac Studio M2 Ultra 2023", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 797512.71, "execs_total": 7983371, "fuzzers_used": 24}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "Apple Mac Studio M2 Ultra 2023, Linux VM guest, 16 threads assigned to VM", "compiler": "Ubuntu clang version 16.0.6", "target_arch": "aarch64-unknown-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3500.0, "cpu_model": "Apple Mac Studio M2 Ultra 2023", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 659476.15, "execs_total": 6601599, "fuzzers_used": 25}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "Apple Mac Studio M2 Ultra 2023, Linux VM guest, 16 threads assigned to VM", "compiler": "Ubuntu clang version 16.0.6", "target_arch": "aarch64-unknown-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3500.0, "cpu_model": "Apple Mac Studio M2 Ultra 2023", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 560625.96, "execs_total": 5612503, "fuzzers_used": 26}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "Apple Mac Studio M2 Ultra 2023, Linux VM guest, 16 threads assigned to VM", "compiler": "Ubuntu clang version 16.0.6", "target_arch": "aarch64-unknown-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3500.0, "cpu_model": "Apple Mac Studio M2 Ultra 2023", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 537839.62, "execs_total": 5381649, "fuzzers_used": 27}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "Apple Mac Studio M2 Ultra 2023, Linux VM guest, 16 threads assigned to VM", "compiler": "Ubuntu clang version 16.0.6", "target_arch": "aarch64-unknown-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3500.0, "cpu_model": "Apple Mac Studio M2 Ultra 2023", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 510072.53, "execs_total": 5106056, "fuzzers_used": 28}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "Apple Mac Studio M2 Ultra 2023, Linux VM guest, 16 threads assigned to VM", "compiler": "Ubuntu clang version 16.0.6", "target_arch": "aarch64-unknown-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3500.0, "cpu_model": "Apple Mac Studio M2 Ultra 2023", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 408667.49, "execs_total": 4091795, "fuzzers_used": 29}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "Apple Mac Studio M2 Ultra 2023, Linux VM guest, 16 threads assigned to VM", "compiler": "Ubuntu clang version 16.0.6", "target_arch": "aarch64-unknown-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3500.0, "cpu_model": "Apple Mac Studio M2 Ultra 2023", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 453849.79, "execs_total": 4542311, "fuzzers_used": 30}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "Apple Mac Studio M2 Ultra 2023, Linux VM guest, 16 threads assigned to VM", "compiler": "Ubuntu clang version 16.0.6", "target_arch": "aarch64-unknown-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3500.0, "cpu_model": "Apple Mac Studio M2 Ultra 2023", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 405935.72, "execs_total": 4064268, "fuzzers_used": 31}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "Apple Mac Studio M2 Ultra 2023, Linux VM guest, 16 threads assigned to VM", "compiler": "Ubuntu clang version 16.0.6", "target_arch": "aarch64-unknown-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3500.0, "cpu_model": "Apple Mac Studio M2 Ultra 2023", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 579312.77, "execs_total": 5798912, "fuzzers_used": 32}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "Apple Mac Studio M2 Ultra 2023, Linux VM guest, 16 threads assigned to VM", "compiler": "Ubuntu clang version 16.0.6", "target_arch": "aarch64-unknown-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3500.0, "cpu_model": "Apple Mac Studio M2 Ultra 2023", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 470961.79, "execs_total": 4715503, "fuzzers_used": 33}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "Apple Mac Studio M2 Ultra 2023, Linux VM guest, 16 threads assigned to VM", "compiler": "Ubuntu clang version 16.0.6", "target_arch": "aarch64-unknown-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3500.0, "cpu_model": "Apple Mac Studio M2 Ultra 2023", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 436380.3, "execs_total": 4368099, "fuzzers_used": 34}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "Apple Mac Studio M2 Ultra 2023, Linux VM guest, 16 threads assigned to VM", "compiler": "Ubuntu clang version 16.0.6", "target_arch": "aarch64-unknown-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3500.0, "cpu_model": "Apple Mac Studio M2 Ultra 2023", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 439819.17, "execs_total": 4405705, "fuzzers_used": 35}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "Apple Mac Studio M2 Ultra 2023, Linux VM guest, 16 threads assigned to VM", "compiler": "Ubuntu clang version 16.0.6", "target_arch": "aarch64-unknown-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3500.0, "cpu_model": "Apple Mac Studio M2 Ultra 2023", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 407460.31, "execs_total": 4084528, "fuzzers_used": 36}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3514.326, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 119469.35, "execs_total": 1194813, "fuzzers_used": 1}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3599.748, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 237177.2, "execs_total": 2372250, "fuzzers_used": 2}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3455.647, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 358305.9, "execs_total": 3583655, "fuzzers_used": 3}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3599.67, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 475974.21, "execs_total": 4760218, "fuzzers_used": 4}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3598.813, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 594372.12, "execs_total": 5944793, "fuzzers_used": 5}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3584.545, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 711732.18, "execs_total": 7118626, "fuzzers_used": 6}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3599.377, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 824314.1, "execs_total": 8245020, "fuzzers_used": 7}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3598.535, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 936358.89, "execs_total": 9365349, "fuzzers_used": 8}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3469.977, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1010050.77, "execs_total": 10102421, "fuzzers_used": 9}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3599.644, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1087333.72, "execs_total": 10875294, "fuzzers_used": 10}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3473.935, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1180500.37, "execs_total": 11807345, "fuzzers_used": 11}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3334.193, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1284695.8, "execs_total": 12849848, "fuzzers_used": 12}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3436.186, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1377659.89, "execs_total": 13779252, "fuzzers_used": 13}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3597.27, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1471828.49, "execs_total": 14721973, "fuzzers_used": 14}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3466.893, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1557812.41, "execs_total": 15581135, "fuzzers_used": 15}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3561.127, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1634678.08, "execs_total": 16349952, "fuzzers_used": 16}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3598.848, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1518908.2, "execs_total": 15192488, "fuzzers_used": 17}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3591.34, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1470513.71, "execs_total": 14709207, "fuzzers_used": 18}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3598.619, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1414625.05, "execs_total": 14156400, "fuzzers_used": 19}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3597.99, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1355481.53, "execs_total": 13565462, "fuzzers_used": 20}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3598.232, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1292684.55, "execs_total": 12934801, "fuzzers_used": 21}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3442.34, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1234478.66, "execs_total": 12352256, "fuzzers_used": 22}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3598.796, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1174550.37, "execs_total": 11752094, "fuzzers_used": 23}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3494.124, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1125218.66, "execs_total": 11258330, "fuzzers_used": 24}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3350.261, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 1022021.81, "execs_total": 10226548, "fuzzers_used": 25}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3598.929, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 990339.75, "execs_total": 9908883, "fuzzers_used": 26}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3484.153, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 953861.38, "execs_total": 9543479, "fuzzers_used": 27}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3393.24, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 942151.65, "execs_total": 9426176, "fuzzers_used": 28}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3434.881, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 927072.1, "execs_total": 9275954, "fuzzers_used": 29}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3444.453, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 908669.71, "execs_total": 9092225, "fuzzers_used": 30}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3442.593, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 893432.26, "execs_total": 8938840, "fuzzers_used": 31}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3380.389, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 876618.01, "execs_total": 8770325, "fuzzers_used": 32}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3586.135, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 834676.33, "execs_total": 8350992, "fuzzers_used": 33}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3597.956, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 830200.25, "execs_total": 8306463, "fuzzers_used": 34}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3597.94, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 821667.96, "execs_total": 8220135, "fuzzers_used": 35}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3591.052, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 829075.87, "execs_total": 8294543, "fuzzers_used": 36}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3573.541, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 814422.62, "execs_total": 8148191, "fuzzers_used": 37}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3599.902, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 806770.85, "execs_total": 8071030, "fuzzers_used": 38}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3488.496, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 794433.8, "execs_total": 7947600, "fuzzers_used": 39}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3470.314, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 781022.61, "execs_total": 7813248, "fuzzers_used": 40}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3599.761, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 754394.26, "execs_total": 7546321, "fuzzers_used": 41}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3599.125, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 763116.33, "execs_total": 7634125, "fuzzers_used": 42}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3599.437, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 759323.54, "execs_total": 7596118, "fuzzers_used": 43}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3599.079, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 764198.14, "execs_total": 7644920, "fuzzers_used": 44}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3599.619, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 757777.51, "execs_total": 7580317, "fuzzers_used": 45}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3425.09, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 749357.06, "execs_total": 7496189, "fuzzers_used": 46}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3598.567, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 732083.87, "execs_total": 7323543, "fuzzers_used": 47}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3598.365, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 721133.28, "execs_total": 7214084, "fuzzers_used": 48}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3599.699, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 658925.82, "execs_total": 6591967, "fuzzers_used": 49}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3597.889, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 659890.97, "execs_total": 6601888, "fuzzers_used": 50}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3381.676, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 655176.63, "execs_total": 6554987, "fuzzers_used": 51}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3587.51, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 660889.12, "execs_total": 6612265, "fuzzers_used": 52}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3546.407, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 651803.54, "execs_total": 6520961, "fuzzers_used": 53}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3439.83, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 659012.17, "execs_total": 6593396, "fuzzers_used": 54}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3387.899, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 660016.18, "execs_total": 6603558, "fuzzers_used": 55}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3444.077, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 655931.36, "execs_total": 6561865, "fuzzers_used": 56}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3597.775, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 618906.23, "execs_total": 6192465, "fuzzers_used": 57}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3599.33, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 614008.28, "execs_total": 6143464, "fuzzers_used": 58}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3599.487, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 622400.85, "execs_total": 6227304, "fuzzers_used": 59}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3599.123, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 624883.06, "execs_total": 6251875, "fuzzers_used": 60}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3590.657, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 628668.94, "execs_total": 6289966, "fuzzers_used": 61}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3598.335, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 628892.17, "execs_total": 6292361, "fuzzers_used": 62}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3599.368, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 622065.07, "execs_total": 6224119, "fuzzers_used": 63}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3413.262, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 625528.06, "execs_total": 6258762, "fuzzers_used": 64}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3599.18, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 602248.19, "execs_total": 6025927, "fuzzers_used": 65}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3591.981, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 597615.89, "execs_total": 5979708, "fuzzers_used": 66}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3600.012, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 607270.98, "execs_total": 6076233, "fuzzers_used": 67}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3507.753, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 608945.09, "execs_total": 6092446, "fuzzers_used": 68}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3599.845, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 611736.03, "execs_total": 6121207, "fuzzers_used": 69}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3412.629, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 615031.23, "execs_total": 6153592, "fuzzers_used": 70}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3443.261, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 608202.64, "execs_total": 6084885, "fuzzers_used": 71}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3599.439, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 614339.09, "execs_total": 6146152, "fuzzers_used": 72}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3379.556, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 587046.59, "execs_total": 5873881, "fuzzers_used": 73}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3598.574, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 587238.27, "execs_total": 5875646, "fuzzers_used": 74}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3599.098, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 594097.56, "execs_total": 5944036, "fuzzers_used": 75}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3587.762, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 598450.35, "execs_total": 5987756, "fuzzers_used": 76}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3599.629, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 600430.29, "execs_total": 6007598, "fuzzers_used": 77}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3362.161, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 602014.19, "execs_total": 6023649, "fuzzers_used": 78}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3588.173, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 606146.9, "execs_total": 6065033, "fuzzers_used": 79}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3591.159, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 599360.46, "execs_total": 5997023, "fuzzers_used": 80}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3503.299, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 574792.78, "execs_total": 5751470, "fuzzers_used": 81}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3584.593, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 578265.29, "execs_total": 5785927, "fuzzers_used": 82}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3401.073, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 589985.07, "execs_total": 5903506, "fuzzers_used": 83}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3468.764, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 589281.87, "execs_total": 5895767, "fuzzers_used": 84}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3466.115, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 596581.77, "execs_total": 5969747, "fuzzers_used": 85}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3590.706, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 589017.68, "execs_total": 5893108, "fuzzers_used": 86}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3521.556, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 593403.75, "execs_total": 5937422, "fuzzers_used": 87}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3599.254, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 601611.06, "execs_total": 6019864, "fuzzers_used": 88}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3598.211, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 576056.15, "execs_total": 5763322, "fuzzers_used": 89}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3599.489, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 576151.97, "execs_total": 5764687, "fuzzers_used": 90}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3598.444, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 583769.1, "execs_total": 5841115, "fuzzers_used": 91}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3446.364, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 585285.47, "execs_total": 5856103, "fuzzers_used": 92}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3562.852, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 581524.67, "execs_total": 5818808, "fuzzers_used": 93}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3597.403, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 596383.31, "execs_total": 5967460, "fuzzers_used": 94}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3421.421, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 596239.29, "execs_total": 5965882, "fuzzers_used": 95}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3276.519, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 595382.67, "execs_total": 5957136, "fuzzers_used": 96}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3599.029, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 586144.68, "execs_total": 5865411, "fuzzers_used": 97}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3590.48, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 579467.06, "execs_total": 5798123, "fuzzers_used": 98}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3597.89, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 572801.45, "execs_total": 5731838, "fuzzers_used": 99}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3598.31, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 573916.1, "execs_total": 5742901, "fuzzers_used": 100}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3589.943, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 565823.06, "execs_total": 5660910, "fuzzers_used": 101}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3391.191, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 561854.84, "execs_total": 5621778, "fuzzers_used": 102}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3372.775, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 562717.02, "execs_total": 5630085, "fuzzers_used": 103}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3365.142, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 559273.67, "execs_total": 5596400, "fuzzers_used": 104}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3591.44, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 553209.58, "execs_total": 5535044, "fuzzers_used": 105}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3563.12, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 547678.42, "execs_total": 5480061, "fuzzers_used": 106}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3477.381, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 552316.36, "execs_total": 5526570, "fuzzers_used": 107}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3599.467, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 545257.97, "execs_total": 5455157, "fuzzers_used": 108}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3344.258, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 549190.03, "execs_total": 5495511, "fuzzers_used": 109}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3421.467, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 546845.0, "execs_total": 5472086, "fuzzers_used": 110}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3599.157, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 545239.46, "execs_total": 5455236, "fuzzers_used": 111}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3598.389, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 543139.24, "execs_total": 5434484, "fuzzers_used": 112}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3461.931, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 543252.43, "execs_total": 5435319, "fuzzers_used": 113}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3354.728, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 538720.77, "execs_total": 5390315, "fuzzers_used": 114}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3599.185, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 536681.55, "execs_total": 5369963, "fuzzers_used": 115}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3598.862, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 540956.43, "execs_total": 5412850, "fuzzers_used": 116}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3599.403, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 536348.84, "execs_total": 5367054, "fuzzers_used": 117}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3598.449, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 534734.41, "execs_total": 5350358, "fuzzers_used": 118}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3599.736, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 536060.28, "execs_total": 5363892, "fuzzers_used": 119}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3590.738, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 533480.83, "execs_total": 5338193, "fuzzers_used": 120}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3599.482, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 514271.98, "execs_total": 5145571, "fuzzers_used": 121}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3598.864, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 503271.79, "execs_total": 5035794, "fuzzers_used": 122}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3586.097, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 496011.52, "execs_total": 4963063, "fuzzers_used": 123}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3587.507, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 490784.42, "execs_total": 4910734, "fuzzers_used": 124}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3599.718, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 488441.09, "execs_total": 4887140, "fuzzers_used": 125}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3598.035, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 481281.33, "execs_total": 4815386, "fuzzers_used": 126}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3599.332, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 469294.96, "execs_total": 4695183, "fuzzers_used": 127}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3589.346, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 465563.78, "execs_total": 4657841, "fuzzers_used": 128}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3598.943, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 459922.67, "execs_total": 4601391, "fuzzers_used": 129}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3280.928, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 459384.3, "execs_total": 4596590, "fuzzers_used": 130}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3598.875, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 453310.58, "execs_total": 4535383, "fuzzers_used": 131}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3600.179, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 460246.7, "execs_total": 4604954, "fuzzers_used": 132}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3601.396, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 457201.82, "execs_total": 4574474, "fuzzers_used": 133}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3600.942, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 452487.43, "execs_total": 4527226, "fuzzers_used": 134}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3458.573, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 450514.18, "execs_total": 4507745, "fuzzers_used": 135}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3598.922, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 449479.52, "execs_total": 4496843, "fuzzers_used": 136}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3598.911, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 444691.06, "execs_total": 4449491, "fuzzers_used": 137}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3599.654, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 443497.81, "execs_total": 4437339, "fuzzers_used": 138}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3599.626, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 437981.1, "execs_total": 4382263, "fuzzers_used": 139}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3599.124, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 443055.68, "execs_total": 4432987, "fuzzers_used": 140}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3597.978, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 438908.41, "execs_total": 4391393, "fuzzers_used": 141}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3453.125, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 442841.02, "execs_total": 4430878, "fuzzers_used": 142}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3214.708, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 441891.92, "execs_total": 4421776, "fuzzers_used": 143}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3597.764, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 441860.76, "execs_total": 4421068, "fuzzers_used": 144}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3443.44, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 426935.73, "execs_total": 4272029, "fuzzers_used": 145}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3586.383, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 427322.41, "execs_total": 4275938, "fuzzers_used": 146}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3424.014, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 426914.69, "execs_total": 4271924, "fuzzers_used": 147}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3598.58, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 433246.64, "execs_total": 4335165, "fuzzers_used": 148}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3598.546, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 435016.77, "execs_total": 4352822, "fuzzers_used": 149}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3598.587, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 432197.7, "execs_total": 4324740, "fuzzers_used": 150}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3537.464, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 434928.88, "execs_total": 4351767, "fuzzers_used": 151}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3599.135, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 435174.29, "execs_total": 4354184, "fuzzers_used": 152}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3371.959, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 426852.22, "execs_total": 4271150, "fuzzers_used": 153}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3597.413, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 431241.89, "execs_total": 4315307, "fuzzers_used": 154}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3590.69, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 430842.14, "execs_total": 4311025, "fuzzers_used": 155}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3591.29, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 434156.3, "execs_total": 4344575, "fuzzers_used": 156}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3583.517, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 430896.1, "execs_total": 4311642, "fuzzers_used": 157}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3598.926, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 435704.89, "execs_total": 4360326, "fuzzers_used": 158}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3599.395, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 438155.8, "execs_total": 4384203, "fuzzers_used": 159}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3396.521, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 442883.53, "execs_total": 4432039, "fuzzers_used": 160}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3597.95, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 433993.37, "execs_total": 4342838, "fuzzers_used": 161}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3598.614, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 437174.96, "execs_total": 4374708, "fuzzers_used": 162}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3599.894, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 435745.93, "execs_total": 4360320, "fuzzers_used": 163}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3599.633, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 441564.58, "execs_total": 4418619, "fuzzers_used": 164}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3599.069, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 445500.18, "execs_total": 4457810, "fuzzers_used": 165}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3581.223, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 445887.53, "execs_total": 4461995, "fuzzers_used": 166}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3598.249, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 443509.97, "execs_total": 4438012, "fuzzers_used": 167}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3599.106, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 446851.67, "execs_total": 4471572, "fuzzers_used": 168}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3417.764, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 447685.22, "execs_total": 4479536, "fuzzers_used": 169}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3589.058, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 446730.72, "execs_total": 4470322, "fuzzers_used": 170}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3599.116, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 448668.48, "execs_total": 4489967, "fuzzers_used": 171}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3587.905, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 450972.11, "execs_total": 4513110, "fuzzers_used": 172}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3599.114, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 450615.23, "execs_total": 4509271, "fuzzers_used": 173}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3598.851, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 458016.89, "execs_total": 4583318, "fuzzers_used": 174}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3599.106, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 460677.5, "execs_total": 4609716, "fuzzers_used": 175}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3374.143, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 460763.9, "execs_total": 4610640, "fuzzers_used": 176}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3599.42, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 452298.55, "execs_total": 4526006, "fuzzers_used": 177}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3598.801, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 456748.89, "execs_total": 4570571, "fuzzers_used": 178}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3598.709, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 451289.94, "execs_total": 4516046, "fuzzers_used": 179}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3599.769, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 463235.15, "execs_total": 4635628, "fuzzers_used": 180}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3330.854, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 464366.11, "execs_total": 4646649, "fuzzers_used": 181}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3599.585, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 469453.17, "execs_total": 4697909, "fuzzers_used": 182}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3598.242, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 467300.47, "execs_total": 4676077, "fuzzers_used": 183}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3597.952, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 475115.57, "execs_total": 4754150, "fuzzers_used": 184}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3583.539, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 472179.98, "execs_total": 4724913, "fuzzers_used": 185}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3598.57, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 465528.62, "execs_total": 4658439, "fuzzers_used": 186}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3587.126, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 476194.69, "execs_total": 4765385, "fuzzers_used": 187}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3423.033, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 475886.86, "execs_total": 4762069, "fuzzers_used": 188}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3599.32, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 473599.91, "execs_total": 4739128, "fuzzers_used": 189}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3597.599, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 476949.52, "execs_total": 4772500, "fuzzers_used": 190}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3437.101, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 474259.76, "execs_total": 4745505, "fuzzers_used": 191}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "AWS EC2 r6a.48xlarge spot instance", "compiler": "clang version 15.0.7 (Amazon Linux 15.0.7-3.amzn2023.0.1)", "target_arch": "x86_64-amazon-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3599.17, "cpu_model": "AMD EPYC 7R13 Processor", "cpu_threads": 192}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 479848.23, "execs_total": 4801111, "fuzzers_used": 192}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "", "compiler": "Debian clang version 17.0.4 (++20231031083102+309d55140c46-1~exp1~20231031083155.63)", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4761.063, "cpu_model": "12th Gen Intel(R) Core(TM) i7-1270P", "cpu_threads": 16}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 641219.02, "execs_total": 19251242, "fuzzers_used": 16}, "singlecore": {"execs_per_sec": 149778.22, "execs_total": 4493796, "fuzzers_used": 1}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "", "compiler": "Ubuntu clang version 17.0.2 (++20231003073128+b2417f51dbbd-1~exp1~20231003073233.51)", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3193.942, "cpu_model": "AMD EPYC 7282 16-Core Processor", "cpu_threads": 64}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 769000.8, "execs_total": 23084516, "fuzzers_used": 32}, "singlecore": {"execs_per_sec": 87198.85, "execs_total": 2616227, "fuzzers_used": 1}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.08a", "comment": "", "compiler": "Ubuntu clang version 14.0.0-1ubuntu1.1", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 3700.0, "cpu_model": "AMD Ryzen 5 PRO 4650G with Radeon Graphics", "cpu_threads": 12}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 704840.16, "execs_total": 21163992, "fuzzers_used": 12}, "singlecore": {"execs_per_sec": 95356.14, "execs_total": 2862114, "fuzzers_used": 1}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.09a", "comment": "", "compiler": "Debian clang version 14.0.6", "target_arch": "aarch64-unknown-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 2400.0, "cpu_model": "Raspberry Pi 5", "cpu_threads": 4}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 101114.23, "execs_total": 3036637, "fuzzers_used": 4}, "singlecore": {"execs_per_sec": 25786.11, "execs_total": 774460, "fuzzers_used": 1}}}}
|
||||||
|
{"config": {"afl_persistent_config": true, "afl_system_config": true, "afl_version": "++4.07a", "comment": "", "compiler": "Debian clang version 17.0.0 (++20230417071830+ae77aceba5ad-1~exp1~20230417071935.630)", "target_arch": "x86_64-pc-linux-gnu"}, "hardware": {"cpu_fastest_core_mhz": 4792.073, "cpu_model": "AMD Ryzen 9 5950X 16-Core Processor", "cpu_threads": 32}, "targets": {"test-instr-persist-shmem": {"multicore": {"execs_per_sec": 2339762.91, "execs_total": 70253164, "fuzzers_used": 32}, "singlecore": {"execs_per_sec": 161690.07, "execs_total": 4851838, "fuzzers_used": 1}}}}
|
1445
benchmark/benchmark.ipynb
Normal file
1445
benchmark/benchmark.ipynb
Normal file
File diff suppressed because one or more lines are too long
281
benchmark/benchmark.py
Executable file
281
benchmark/benchmark.py
Executable file
@ -0,0 +1,281 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
# Part of the aflplusplus project, requires Python 3.8+.
|
||||||
|
# Author: Chris Ball <chris@printf.net>, ported from Marc "van Hauser" Heuse's "benchmark.sh".
|
||||||
|
import argparse, asyncio, json, multiprocessing, os, platform, re, shutil, sys
|
||||||
|
from dataclasses import asdict, dataclass
|
||||||
|
from decimal import Decimal
|
||||||
|
from enum import Enum, auto
|
||||||
|
from pathlib import Path
|
||||||
|
from typing import Dict, List, Optional, Tuple
|
||||||
|
|
||||||
|
blue = lambda text: f"\033[1;94m{text}\033[0m"; gray = lambda text: f"\033[1;90m{text}\033[0m"
|
||||||
|
green = lambda text: f"\033[0;32m{text}\033[0m"; red = lambda text: f"\033[0;31m{text}\033[0m"
|
||||||
|
yellow = lambda text: f"\033[0;33m{text}\033[0m"
|
||||||
|
|
||||||
|
class Mode(Enum):
|
||||||
|
multicore = auto()
|
||||||
|
singlecore = auto()
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class Target:
|
||||||
|
source: Path
|
||||||
|
binary: Path
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class Run:
|
||||||
|
execs_per_sec: float
|
||||||
|
execs_total: float
|
||||||
|
fuzzers_used: int
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class Config:
|
||||||
|
afl_persistent_config: bool
|
||||||
|
afl_system_config: bool
|
||||||
|
afl_version: Optional[str]
|
||||||
|
comment: str
|
||||||
|
compiler: str
|
||||||
|
target_arch: str
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class Hardware:
|
||||||
|
cpu_fastest_core_mhz: float
|
||||||
|
cpu_model: str
|
||||||
|
cpu_threads: int
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class Results:
|
||||||
|
config: Optional[Config]
|
||||||
|
hardware: Optional[Hardware]
|
||||||
|
targets: Dict[str, Dict[str, Optional[Run]]]
|
||||||
|
|
||||||
|
all_modes = [Mode.singlecore, Mode.multicore]
|
||||||
|
all_targets = [
|
||||||
|
Target(source=Path("../utils/persistent_mode/test-instr.c").resolve(), binary=Path("test-instr-persist-shmem")),
|
||||||
|
Target(source=Path("../test-instr.c").resolve(), binary=Path("test-instr"))
|
||||||
|
]
|
||||||
|
modes = [mode.name for mode in all_modes]
|
||||||
|
targets = [str(target.binary) for target in all_targets]
|
||||||
|
cpu_count = multiprocessing.cpu_count()
|
||||||
|
env_vars = {
|
||||||
|
"AFL_DISABLE_TRIM": "1", "AFL_I_DONT_CARE_ABOUT_MISSING_CRASHES": "1", "AFL_FAST_CAL": "1",
|
||||||
|
"AFL_NO_UI": "1", "AFL_TRY_AFFINITY": "1", "PATH": f'{str(Path("../").resolve())}:{os.environ["PATH"]}',
|
||||||
|
}
|
||||||
|
|
||||||
|
parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter)
|
||||||
|
parser.add_argument("-b", "--basedir", help="directory to use for temp files", type=str, default="/tmp/aflpp-benchmark")
|
||||||
|
parser.add_argument("-d", "--debug", help="show verbose debugging output", action="store_true")
|
||||||
|
parser.add_argument("-r", "--runs", help="how many runs to average results over", type=int, default=3)
|
||||||
|
parser.add_argument("-f", "--fuzzers", help="how many afl-fuzz workers to use", type=int, default=cpu_count)
|
||||||
|
parser.add_argument("-m", "--mode", help="pick modes", action="append", default=modes, choices=modes)
|
||||||
|
parser.add_argument("-c", "--comment", help="add a comment about your setup", type=str, default="")
|
||||||
|
parser.add_argument("--cpu", help="override the detected CPU model name", type=str, default="")
|
||||||
|
parser.add_argument("--mhz", help="override the detected CPU MHz", type=str, default="")
|
||||||
|
parser.add_argument(
|
||||||
|
"-t", "--target", help="pick targets", action="append", default=["test-instr-persist-shmem"], choices=targets
|
||||||
|
)
|
||||||
|
args = parser.parse_args()
|
||||||
|
# Really unsatisfying argparse behavior: we want a default and to allow multiple choices, but if there's a manual choice
|
||||||
|
# it should override the default. Seems like we have to remove the default to get that and have correct help text?
|
||||||
|
if len(args.target) > 1:
|
||||||
|
args.target = args.target[1:]
|
||||||
|
if len(args.mode) > 2:
|
||||||
|
args.mode = args.mode[2:]
|
||||||
|
|
||||||
|
chosen_modes = [mode for mode in all_modes if mode.name in args.mode]
|
||||||
|
chosen_targets = [target for target in all_targets if str(target.binary) in args.target]
|
||||||
|
results = Results(config=None, hardware=None, targets={
|
||||||
|
str(t.binary): {m.name: None for m in chosen_modes} for t in chosen_targets}
|
||||||
|
)
|
||||||
|
debug = lambda text: args.debug and print(blue(text))
|
||||||
|
|
||||||
|
async def clean_up_tempfiles() -> None:
|
||||||
|
shutil.rmtree(f"{args.basedir}/in")
|
||||||
|
for target in chosen_targets:
|
||||||
|
target.binary.unlink()
|
||||||
|
for mode in chosen_modes:
|
||||||
|
shutil.rmtree(f"{args.basedir}/out-{mode.name}-{str(target.binary)}")
|
||||||
|
|
||||||
|
async def check_afl_persistent() -> bool:
|
||||||
|
with open("/proc/cmdline", "r") as cmdline:
|
||||||
|
return "mitigations=off" in cmdline.read().strip().split(" ")
|
||||||
|
|
||||||
|
async def check_afl_system() -> bool:
|
||||||
|
sysctl = next((s for s in ["sysctl", "/sbin/sysctl"] if shutil.which(s)), None)
|
||||||
|
if sysctl:
|
||||||
|
(returncode, stdout, _) = await run_command([sysctl, "kernel.randomize_va_space"])
|
||||||
|
return returncode == 0 and stdout.decode().rstrip().split(" = ")[1] == "0"
|
||||||
|
return False
|
||||||
|
|
||||||
|
async def prep_env() -> None:
|
||||||
|
Path(f"{args.basedir}/in").mkdir(exist_ok=True, parents=True)
|
||||||
|
with open(f"{args.basedir}/in/in.txt", "wb") as seed:
|
||||||
|
seed.write(b"\x00" * 10240)
|
||||||
|
|
||||||
|
async def compile_target(source: Path, binary: Path) -> None:
|
||||||
|
print(f" [*] Compiling the {binary} fuzzing harness for the benchmark to use.")
|
||||||
|
(returncode, stdout, stderr) = await run_command(
|
||||||
|
[str(Path("../afl-clang-lto").resolve()), "-o", str(Path(binary.resolve())), str(Path(source).resolve())]
|
||||||
|
)
|
||||||
|
if returncode == 0:
|
||||||
|
return
|
||||||
|
print(yellow(f" [*] afl-clang-lto was unable to compile; falling back to afl-cc."))
|
||||||
|
(returncode, stdout, stderr) = await run_command(
|
||||||
|
[str(Path("../afl-cc").resolve()), "-o", str(Path(binary.resolve())), str(Path(source).resolve())]
|
||||||
|
)
|
||||||
|
if returncode != 0:
|
||||||
|
sys.exit(red(f" [*] Error: afl-cc is unable to compile: {stderr.decode()} {stdout.decode()}"))
|
||||||
|
|
||||||
|
async def run_command(cmd: List[str]) -> Tuple[Optional[int], bytes, bytes]:
|
||||||
|
debug(f"Launching command: {cmd} with env {env_vars}")
|
||||||
|
p = await asyncio.create_subprocess_exec(
|
||||||
|
*cmd, stdout=asyncio.subprocess.PIPE, stderr=asyncio.subprocess.PIPE, env=env_vars
|
||||||
|
)
|
||||||
|
stdout, stderr = await p.communicate()
|
||||||
|
debug(f"Output: {stdout.decode()} {stderr.decode()}")
|
||||||
|
return (p.returncode, stdout, stderr)
|
||||||
|
|
||||||
|
async def check_deps() -> None:
|
||||||
|
if not (plat := platform.system()) == "Linux": sys.exit(red(f" [*] {plat} is not supported by this script yet."))
|
||||||
|
if not os.access(Path("../afl-fuzz").resolve(), os.X_OK) and os.access(Path("../afl-cc").resolve(), os.X_OK) and (
|
||||||
|
os.path.exists(Path("../SanitizerCoveragePCGUARD.so").resolve())):
|
||||||
|
sys.exit(red(" [*] Compile AFL++: we need afl-fuzz, afl-clang-fast and SanitizerCoveragePCGUARD.so built."))
|
||||||
|
|
||||||
|
(returncode, stdout, stderr) = await run_command([str(Path("../afl-cc").resolve()), "-v"])
|
||||||
|
if returncode != 0:
|
||||||
|
sys.exit(red(f" [*] Error: afl-cc -v returned: {stderr.decode()} {stdout.decode()}"))
|
||||||
|
compiler = ""
|
||||||
|
target_arch = ""
|
||||||
|
for line in stderr.decode().split("\n"):
|
||||||
|
if "clang version" in line:
|
||||||
|
compiler = line
|
||||||
|
elif m := re.match(r"^Target: (.*)", line):
|
||||||
|
target_arch = m.group(1)
|
||||||
|
|
||||||
|
# Pick some sample settings from afl-{persistent,system}-config to try to see whether they were run.
|
||||||
|
afl_pc = await check_afl_persistent()
|
||||||
|
afl_sc = await check_afl_system()
|
||||||
|
if not afl_pc:
|
||||||
|
print(yellow(f" [*] afl-persistent-config did not run; run it to improve performance (and decrease security)."))
|
||||||
|
if not afl_sc:
|
||||||
|
print(yellow(f" [*] afl-system-config did not run; run it to improve performance (and decrease security)."))
|
||||||
|
results.config = Config(afl_persistent_config=afl_pc, afl_system_config=afl_sc, afl_version="",
|
||||||
|
comment=args.comment, compiler=compiler, target_arch=target_arch)
|
||||||
|
|
||||||
|
async def colon_values(filename: str, searchKey: str) -> List[str]:
|
||||||
|
"""Return a colon-separated value given a key in a file, e.g. 'cpu MHz : 4976.109')"""
|
||||||
|
with open(filename, "r") as fh:
|
||||||
|
kv_pairs = (line.split(": ", 1) for line in fh if ": " in line)
|
||||||
|
v_list = [v.rstrip() for k, v in kv_pairs if k.rstrip() == searchKey]
|
||||||
|
return v_list
|
||||||
|
|
||||||
|
async def describe_afl_config() -> str:
|
||||||
|
if results.config is None:
|
||||||
|
return "unknown"
|
||||||
|
elif results.config.afl_persistent_config and results.config.afl_system_config:
|
||||||
|
return "both"
|
||||||
|
elif results.config.afl_persistent_config:
|
||||||
|
return "persistent"
|
||||||
|
elif results.config.afl_system_config:
|
||||||
|
return "system"
|
||||||
|
else:
|
||||||
|
return "none"
|
||||||
|
|
||||||
|
async def save_benchmark_results() -> None:
|
||||||
|
"""Append a single row to the benchmark results in JSON Lines format (which is simple to write and diff)."""
|
||||||
|
with open("benchmark-results.jsonl", "a") as jsonfile:
|
||||||
|
json.dump(asdict(results), jsonfile, sort_keys=True)
|
||||||
|
jsonfile.write("\n")
|
||||||
|
print(blue(f" [*] Results have been written to the {jsonfile.name} file."))
|
||||||
|
with open("COMPARISON.md", "r+") as comparisonfile:
|
||||||
|
described_config = await describe_afl_config()
|
||||||
|
aflconfig = described_config.ljust(12)
|
||||||
|
if results.hardware is None:
|
||||||
|
return
|
||||||
|
cpu_model = results.hardware.cpu_model.ljust(51)
|
||||||
|
if cpu_model in comparisonfile.read():
|
||||||
|
print(blue(f" [*] Results have not been written to the COMPARISON.md file; this CPU is already present."))
|
||||||
|
return
|
||||||
|
cpu_mhz = str(round(results.hardware.cpu_fastest_core_mhz)).ljust(5)
|
||||||
|
if not "test-instr-persist-shmem" in results.targets or \
|
||||||
|
not "multicore" in results.targets["test-instr-persist-shmem"] or \
|
||||||
|
not "singlecore" in results.targets["test-instr-persist-shmem"] or \
|
||||||
|
results.targets["test-instr-persist-shmem"]["singlecore"] is None or \
|
||||||
|
results.targets["test-instr-persist-shmem"]["multicore"] is None:
|
||||||
|
return
|
||||||
|
single = str(round(results.targets["test-instr-persist-shmem"]["singlecore"].execs_per_sec)).ljust(10)
|
||||||
|
multi = str(round(results.targets["test-instr-persist-shmem"]["multicore"].execs_per_sec)).ljust(9)
|
||||||
|
cores = str(args.fuzzers).ljust(7)
|
||||||
|
comparisonfile.write(f"{cpu_model} | {cpu_mhz} | {cores} | {single} | {multi} | {aflconfig} |\n")
|
||||||
|
print(blue(f" [*] Results have been written to the COMPARISON.md file."))
|
||||||
|
with open("COMPARISON.md", "r") as comparisonfile:
|
||||||
|
print(comparisonfile.read())
|
||||||
|
|
||||||
|
|
||||||
|
async def main() -> None:
|
||||||
|
try:
|
||||||
|
await clean_up_tempfiles()
|
||||||
|
except FileNotFoundError:
|
||||||
|
pass
|
||||||
|
await check_deps()
|
||||||
|
if args.mhz:
|
||||||
|
cpu_mhz = float(args.mhz)
|
||||||
|
else:
|
||||||
|
cpu_mhz_str = await colon_values("/proc/cpuinfo", "cpu MHz")
|
||||||
|
if len(cpu_mhz_str) == 0:
|
||||||
|
cpu_mhz_str.append("0")
|
||||||
|
cpu_mhz = max([float(c) for c in cpu_mhz_str]) # use the fastest CPU MHz for now
|
||||||
|
if args.cpu:
|
||||||
|
cpu_model = [args.cpu]
|
||||||
|
else:
|
||||||
|
cpu_model = await colon_values("/proc/cpuinfo", "model name") or [""]
|
||||||
|
results.hardware = Hardware(cpu_fastest_core_mhz=cpu_mhz, cpu_model=cpu_model[0], cpu_threads=cpu_count)
|
||||||
|
await prep_env()
|
||||||
|
print(f" [*] Ready, starting benchmark...")
|
||||||
|
for target in chosen_targets:
|
||||||
|
await compile_target(target.source, target.binary)
|
||||||
|
binary = str(target.binary)
|
||||||
|
for mode in chosen_modes:
|
||||||
|
if mode == Mode.multicore:
|
||||||
|
print(blue(f" [*] Using {args.fuzzers} fuzzers for multicore fuzzing "), end="")
|
||||||
|
print(blue("(use --fuzzers to override)." if args.fuzzers == cpu_count else f"(the default is {cpu_count})"))
|
||||||
|
execs_per_sec, execs_total = ([] for _ in range(2))
|
||||||
|
for run_idx in range(0, args.runs):
|
||||||
|
print(gray(f" [*] {mode.name} {binary} run {run_idx+1} of {args.runs}, execs/s: "), end="", flush=True)
|
||||||
|
fuzzers = range(0, args.fuzzers if mode == Mode.multicore else 1)
|
||||||
|
outdir = f"{args.basedir}/out-{mode.name}-{binary}"
|
||||||
|
cmds = []
|
||||||
|
for fuzzer_idx, afl in enumerate(fuzzers):
|
||||||
|
name = ["-o", outdir, "-M" if fuzzer_idx == 0 else "-S", str(afl)]
|
||||||
|
cmds.append(["afl-fuzz", "-i", f"{args.basedir}/in"] + name + ["-s", "123", "-V10", "-D", f"./{binary}"])
|
||||||
|
# Prepare the afl-fuzz tasks, and then block while waiting for them to finish.
|
||||||
|
fuzztasks = [run_command(cmds[cpu]) for cpu in fuzzers]
|
||||||
|
await asyncio.gather(*fuzztasks)
|
||||||
|
afl_versions = await colon_values(f"{outdir}/0/fuzzer_stats", "afl_version")
|
||||||
|
if results.config:
|
||||||
|
results.config.afl_version = afl_versions[0]
|
||||||
|
# Our score is the sum of all execs_per_sec entries in fuzzer_stats files for the run.
|
||||||
|
sectasks = [colon_values(f"{outdir}/{afl}/fuzzer_stats", "execs_per_sec") for afl in fuzzers]
|
||||||
|
all_execs_per_sec = await asyncio.gather(*sectasks)
|
||||||
|
execs = sum([Decimal(count[0]) for count in all_execs_per_sec])
|
||||||
|
print(green(execs))
|
||||||
|
execs_per_sec.append(execs)
|
||||||
|
# Also gather execs_total and total_run_time for this run.
|
||||||
|
exectasks = [colon_values(f"{outdir}/{afl}/fuzzer_stats", "execs_done") for afl in fuzzers]
|
||||||
|
all_execs_total = await asyncio.gather(*exectasks)
|
||||||
|
execs_total.append(sum([Decimal(count[0]) for count in all_execs_total]))
|
||||||
|
|
||||||
|
# (Using float() because Decimal() is not JSON-serializable.)
|
||||||
|
avg_afl_execs_per_sec = round(Decimal(sum(execs_per_sec) / len(execs_per_sec)), 2)
|
||||||
|
afl_execs_total = int(sum([Decimal(execs) for execs in execs_total]))
|
||||||
|
run = Run(execs_per_sec=float(avg_afl_execs_per_sec), execs_total=afl_execs_total, fuzzers_used=len(fuzzers))
|
||||||
|
results.targets[binary][mode.name] = run
|
||||||
|
print(f" [*] Average execs/sec for this test across all runs was: {green(avg_afl_execs_per_sec)}")
|
||||||
|
if (((max(execs_per_sec) - min(execs_per_sec)) / avg_afl_execs_per_sec) * 100) > 15:
|
||||||
|
print(yellow(" [*] The difference between your slowest and fastest runs was >15%, maybe try again?"))
|
||||||
|
|
||||||
|
await clean_up_tempfiles()
|
||||||
|
await save_benchmark_results()
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
asyncio.run(main())
|
||||||
|
|
@ -1,42 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
test -x ../afl-fuzz -a -x ../afl-cc -a -e ../SanitizerCoveragePCGUARD.so || {
|
|
||||||
echo Error: you need to compile AFL++ first, we need afl-fuzz, afl-clang-fast and SanitizerCoveragePCGUARD.so built.
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
echo Preparing environment
|
|
||||||
|
|
||||||
env | grep AFL_ | sed 's/=.*//' | while read e; do
|
|
||||||
unset $e
|
|
||||||
done
|
|
||||||
|
|
||||||
AFL_PATH=`pwd`/..
|
|
||||||
export PATH=$AFL_PATH:$PATH
|
|
||||||
|
|
||||||
AFL_LLVM_INSTRUMENT=PCGUARD afl-cc -o test-instr ../test-instr.c > afl.log 2>&1 || {
|
|
||||||
echo Error: afl-cc is unable to compile
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
mkdir in
|
|
||||||
dd if=/dev/zero of=in/in.txt bs=10K count=1
|
|
||||||
} > /dev/null 2>&1
|
|
||||||
|
|
||||||
echo Ready, starting benchmark - this will take approx 20-30 seconds ...
|
|
||||||
|
|
||||||
AFL_DISABLE_TRIM=1 AFL_NO_UI=1 AFL_TRY_AFFINITY=1 AFL_I_DONT_CARE_ABOUT_MISSING_CRASHES=1 AFL_BENCH_JUST_ONE=1 time afl-fuzz -i in -o out -s 123 -D ./test-instr >> afl.log 2>&1
|
|
||||||
|
|
||||||
echo Analysis:
|
|
||||||
|
|
||||||
CPUID=$(grep 'try binding to' afl.log | tail -n 1 | sed 's/.*#//' | sed 's/\..*//')
|
|
||||||
grep 'model name' /proc/cpuinfo | head -n 1 | sed 's/.*:/ CPU:/'
|
|
||||||
test -n "$CPUID" && grep -E '^processor|^cpu MHz' /proc/cpuinfo | grep -A1 -w "$CPUID" | grep 'cpu MHz' | head -n 1 | sed 's/.*:/ Mhz:/'
|
|
||||||
test -z "$CPUID" && grep 'cpu MHz' /proc/cpuinfo | head -n 1 | sed 's/.*:/ Mhz:/'
|
|
||||||
grep execs_per_sec out/default/fuzzer_stats | sed 's/.*:/ execs\/s:/'
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo "Comparison: (note that values can change by 10-15% per run)"
|
|
||||||
cat COMPARISON
|
|
||||||
|
|
||||||
rm -rf in out test-instr afl.log
|
|
53
custom_mutators/examples/custom_post_run.c
Normal file
53
custom_mutators/examples/custom_post_run.c
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
//
|
||||||
|
// This is an example on how to use afl_custom_post_run
|
||||||
|
// It executes custom code each time after AFL++ executes the target
|
||||||
|
//
|
||||||
|
// cc -O3 -fPIC -shared -g -o custom_post_run.so -I../../include custom_post_run.c
|
||||||
|
// cd ../..
|
||||||
|
// afl-cc -o test-instr test-instr.c
|
||||||
|
// AFL_CUSTOM_MUTATOR_LIBRARY=custom_mutators/examples/custom_post_run.so \
|
||||||
|
// afl-fuzz -i in -o out -- ./test-instr -f /tmp/foo
|
||||||
|
//
|
||||||
|
|
||||||
|
|
||||||
|
#include "afl-fuzz.h"
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
typedef struct my_mutator {
|
||||||
|
|
||||||
|
afl_state_t *afl;
|
||||||
|
|
||||||
|
} my_mutator_t;
|
||||||
|
|
||||||
|
my_mutator_t *afl_custom_init(afl_state_t *afl, unsigned int seed) {
|
||||||
|
|
||||||
|
my_mutator_t *data = calloc(1, sizeof(my_mutator_t));
|
||||||
|
if (!data) {
|
||||||
|
|
||||||
|
perror("afl_custom_init alloc");
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
data->afl = afl;
|
||||||
|
|
||||||
|
return data;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void afl_custom_post_run(my_mutator_t *data) {
|
||||||
|
|
||||||
|
printf("hello from afl_custom_post_run\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void afl_custom_deinit(my_mutator_t *data) {
|
||||||
|
|
||||||
|
free(data);
|
||||||
|
|
||||||
|
}
|
@ -133,6 +133,11 @@ def fuzz(buf, add_buf, max_size):
|
|||||||
# @return: The buffer containing the test case after
|
# @return: The buffer containing the test case after
|
||||||
# '''
|
# '''
|
||||||
# return buf
|
# return buf
|
||||||
|
# def post_run():
|
||||||
|
# '''
|
||||||
|
# Called after each time the execution of the target program by AFL++
|
||||||
|
# '''
|
||||||
|
# pass
|
||||||
#
|
#
|
||||||
# def havoc_mutation(buf, max_size):
|
# def havoc_mutation(buf, max_size):
|
||||||
# '''
|
# '''
|
||||||
|
@ -1 +1 @@
|
|||||||
ff4e5a2
|
5ed4f8d
|
||||||
|
Submodule custom_mutators/grammar_mutator/grammar_mutator updated: ff4e5a265d...5ed4f8d6e6
@ -3,15 +3,51 @@
|
|||||||
This is the list of all noteworthy changes made in every public
|
This is the list of all noteworthy changes made in every public
|
||||||
release of the tool. See README.md for the general instruction manual.
|
release of the tool. See README.md for the general instruction manual.
|
||||||
|
|
||||||
### Version ++4.09a (dev)
|
### Version ++4.10c (release)
|
||||||
- afl-fuzz:
|
- afl-fuzz:
|
||||||
|
- default power schedule is now EXPLORE, due a fix in fast schedules
|
||||||
|
explore is slightly better now.
|
||||||
|
- fixed minor issues in the mutation engine, thanks to @futhewo for
|
||||||
|
reporting!
|
||||||
|
- better deterministic fuzzing is now available, benchmarks have shown
|
||||||
|
to improve fuzzing. Enable with -D. Thanks to @kdsjZh for the PR!
|
||||||
|
- afl-cc:
|
||||||
|
- large rewrite by @SonicStark which fixes a few corner cases, thanks!
|
||||||
|
- LTO mode now requires llvm 12+
|
||||||
|
- workaround for ASAN with gcc_plugin mode
|
||||||
|
- instrumentation:
|
||||||
|
- LLVM 18 support, thanks to @devnexen!
|
||||||
|
- Injection (SQL, LDAP, XSS) fuzzing feature now available, see
|
||||||
|
`instrumentation/README.injections.md` how to activate/use/expand.
|
||||||
|
- compcov/LAF-intel:
|
||||||
|
- floating point splitting bug fix by @hexcoder
|
||||||
|
- due a bug in LLVM 17 integer splitting is disabled there!
|
||||||
|
- when splitting floats was selected, integers were always split as well,
|
||||||
|
fixed to require AFL_LLVM_LAF_SPLIT_COMPARES or _ALL as it should
|
||||||
|
- dynamic instrumentation filtering for LLVM NATIVE, thanks @Mozilla!
|
||||||
|
see utils/dynamic_covfilter/README.md
|
||||||
|
- qemu_mode:
|
||||||
|
- plugins are now activated by default and a new module is included that
|
||||||
|
produces drcov compatible traces for lighthouse/lightkeeper/...
|
||||||
|
thanks to @JRomainG to submitting!
|
||||||
|
- updated Nyx checkout (fixes a bug) and some QOL
|
||||||
|
- updated the custom grammar mutator
|
||||||
|
- document afl-cmin does not work on macOS (but afl-cmin.bash does)
|
||||||
|
|
||||||
|
### Version ++4.09c (release)
|
||||||
|
- afl-fuzz:
|
||||||
|
- fixed the new mutation implementation for two bugs
|
||||||
- added `AFL_FINAL_SYNC` which forces a final fuzzer sync (also for `-F`)
|
- added `AFL_FINAL_SYNC` which forces a final fuzzer sync (also for `-F`)
|
||||||
before terminating.
|
before terminating.
|
||||||
- added AFL_IGNORE_SEED_PROBLEMS to skip over seeds that time out instead
|
- added AFL_IGNORE_SEED_PROBLEMS to skip over seeds that time out instead
|
||||||
of exiting with an error message
|
of exiting with an error message
|
||||||
- allow -S/-M naming up to 50 characters (from 24)
|
- allow -S/-M naming up to 50 characters (from 24)
|
||||||
- added scale support to CMPLOG (-l S)
|
- CMPLOG:
|
||||||
|
- added scale support (-l S)
|
||||||
|
- skip unhelpful insertions (u8)
|
||||||
- added --version and --help command line parameters
|
- added --version and --help command line parameters
|
||||||
|
- fixed endless loop when reading malformed dictionaries
|
||||||
|
- new custom mutator function: post_run - thanks to yangzao!
|
||||||
- afl-whatsup:
|
- afl-whatsup:
|
||||||
- detect instanced that are starting up and show them as such as not dead
|
- detect instanced that are starting up and show them as such as not dead
|
||||||
- now also shows coverage reached
|
- now also shows coverage reached
|
||||||
@ -19,13 +55,16 @@
|
|||||||
- option -n will not use color in the output
|
- option -n will not use color in the output
|
||||||
- instrumentation:
|
- instrumentation:
|
||||||
- fix for a few string compare transform functions for LAF
|
- fix for a few string compare transform functions for LAF
|
||||||
|
- we are instrumenting __cxx internal functions again. this might break
|
||||||
|
a few targets, please report if so.
|
||||||
- frida_mode:
|
- frida_mode:
|
||||||
- fixes support for large map offsets
|
- fixes support for large map offsets
|
||||||
|
- support for AFL_FUZZER_LOOPCOUNT for afl.rs and LLVMFuzzerTestOneInput
|
||||||
|
- afl-cmin/afl-cmin.bash: prevent unneeded file errors
|
||||||
- added new tool afl-addseeds that adds new seeds to a running campaign
|
- added new tool afl-addseeds that adds new seeds to a running campaign
|
||||||
- added benchmark/benchmark.sh if you want to see how good your fuzzing
|
- added benchmark/benchmark.py if you want to see how good your fuzzing
|
||||||
speed is in comparison to other setups.
|
speed is in comparison to other setups.
|
||||||
|
|
||||||
|
|
||||||
### Version ++4.08c (release)
|
### Version ++4.08c (release)
|
||||||
- afl-fuzz:
|
- afl-fuzz:
|
||||||
- new mutation engine: mutations that favor discovery more paths are
|
- new mutation engine: mutations that favor discovery more paths are
|
||||||
|
@ -7,7 +7,7 @@ You can use the [Dockerfile](../Dockerfile) or just pull directly from the
|
|||||||
Docker Hub (for x86_64 and arm64):
|
Docker Hub (for x86_64 and arm64):
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
docker pull aflplusplus/aflplusplus:
|
docker pull aflplusplus/aflplusplus:latest
|
||||||
docker run -ti -v /location/of/your/target:/src aflplusplus/aflplusplus
|
docker run -ti -v /location/of/your/target:/src aflplusplus/aflplusplus
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -114,10 +114,10 @@ freshly installed clang, clang++, llvm-config, gmake and coreutils, e.g.:
|
|||||||
# Depending on your MacOS system + brew version it is either
|
# Depending on your MacOS system + brew version it is either
|
||||||
export PATH="/opt/homebrew/opt/llvm/bin:$PATH"
|
export PATH="/opt/homebrew/opt/llvm/bin:$PATH"
|
||||||
# or
|
# or
|
||||||
export PATH="/usr/local/opt/llvm/bin:$PATH"
|
export PATH="/usr/local/opt/llvm/bin:/usr/local/opt/coreutils/libexec/gnubin:$PATH"
|
||||||
# you can check with "brew info llvm"
|
# you can check with "brew info llvm"
|
||||||
|
|
||||||
export PATH="/usr/local/opt/coreutils/libexec/gnubin:/usr/local/bin:$PATH"
|
export PATH="/usr/local/bin:$PATH"
|
||||||
export CC=clang
|
export CC=clang
|
||||||
export CXX=clang++
|
export CXX=clang++
|
||||||
gmake
|
gmake
|
||||||
|
@ -5,6 +5,10 @@ instrumentation-guided genetic algorithm. It uses a modified form of edge
|
|||||||
coverage to effortlessly pick up subtle, local-scale changes to program control
|
coverage to effortlessly pick up subtle, local-scale changes to program control
|
||||||
flow.
|
flow.
|
||||||
|
|
||||||
|
Note: If you are interested in a more current up-to-date deep dive how AFL++
|
||||||
|
works then we commend this blog post:
|
||||||
|
[https://blog.ritsec.club/posts/afl-under-hood/](https://blog.ritsec.club/posts/afl-under-hood/)
|
||||||
|
|
||||||
Simplifying a bit, the overall algorithm can be summed up as:
|
Simplifying a bit, the overall algorithm can be summed up as:
|
||||||
|
|
||||||
1) Load user-supplied initial test cases into the queue.
|
1) Load user-supplied initial test cases into the queue.
|
||||||
|
@ -73,7 +73,7 @@ def init(seed):
|
|||||||
def fuzz_count(buf):
|
def fuzz_count(buf):
|
||||||
return cnt
|
return cnt
|
||||||
|
|
||||||
def splice_optout()
|
def splice_optout():
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def fuzz(buf, add_buf, max_size):
|
def fuzz(buf, add_buf, max_size):
|
||||||
@ -125,8 +125,9 @@ def deinit(): # optional for Python
|
|||||||
|
|
||||||
- `queue_get` (optional):
|
- `queue_get` (optional):
|
||||||
|
|
||||||
This method determines whether the custom fuzzer should fuzz the current
|
This method determines whether AFL++ should fuzz the current
|
||||||
queue entry or not
|
queue entry or not: all defined custom mutators as well as
|
||||||
|
all AFL++'s mutators.
|
||||||
|
|
||||||
- `fuzz_count` (optional):
|
- `fuzz_count` (optional):
|
||||||
|
|
||||||
@ -197,7 +198,7 @@ def deinit(): # optional for Python
|
|||||||
This method can be used if you want to send data to the target yourself,
|
This method can be used if you want to send data to the target yourself,
|
||||||
e.g. via IPC. This replaces some usage of utils/afl_proxy but requires
|
e.g. via IPC. This replaces some usage of utils/afl_proxy but requires
|
||||||
that you start the target with afl-fuzz.
|
that you start the target with afl-fuzz.
|
||||||
Example: [custom_mutators/examples/custom_send.c](custom_mutators/examples/custom_send.c)
|
Example: [custom_mutators/examples/custom_send.c](../custom_mutators/examples/custom_send.c)
|
||||||
|
|
||||||
- `queue_new_entry` (optional):
|
- `queue_new_entry` (optional):
|
||||||
|
|
||||||
@ -376,4 +377,4 @@ See [example.c](../custom_mutators/examples/example.c) and
|
|||||||
- [bruce30262/libprotobuf-mutator_fuzzing_learning](https://github.com/bruce30262/libprotobuf-mutator_fuzzing_learning/tree/master/4_libprotobuf_aflpp_custom_mutator)
|
- [bruce30262/libprotobuf-mutator_fuzzing_learning](https://github.com/bruce30262/libprotobuf-mutator_fuzzing_learning/tree/master/4_libprotobuf_aflpp_custom_mutator)
|
||||||
- [thebabush/afl-libprotobuf-mutator](https://github.com/thebabush/afl-libprotobuf-mutator)
|
- [thebabush/afl-libprotobuf-mutator](https://github.com/thebabush/afl-libprotobuf-mutator)
|
||||||
- [XML Fuzzing@NullCon 2017](https://www.agarri.fr/docs/XML_Fuzzing-NullCon2017-PUBLIC.pdf)
|
- [XML Fuzzing@NullCon 2017](https://www.agarri.fr/docs/XML_Fuzzing-NullCon2017-PUBLIC.pdf)
|
||||||
- [A bug detected by AFL + XML-aware mutators](https://bugs.chromium.org/p/chromium/issues/detail?id=930663)
|
- [A bug detected by AFL + XML-aware mutators](https://bugs.chromium.org/p/chromium/issues/detail?id=930663)
|
||||||
|
@ -196,6 +196,19 @@ in the specified file.
|
|||||||
For more information, see
|
For more information, see
|
||||||
[instrumentation/README.instrument_list.md](../instrumentation/README.instrument_list.md).
|
[instrumentation/README.instrument_list.md](../instrumentation/README.instrument_list.md).
|
||||||
|
|
||||||
|
#### INJECTIONS
|
||||||
|
|
||||||
|
This feature is able to find simple injection vulnerabilities in insecure
|
||||||
|
calls to mysql/mariadb/nosql/postgresql/ldap and XSS in libxml2.
|
||||||
|
|
||||||
|
- Setting `AFL_LLVM_INJECTIONS_ALL` will enable all injection hooking
|
||||||
|
|
||||||
|
- Setting `AFL_LLVM_INJECTIONS_SQL` will enable SQL injection hooking
|
||||||
|
|
||||||
|
- Setting `AFL_LLVM_INJECTIONS_LDAP` will enable LDAP injection hooking
|
||||||
|
|
||||||
|
- Setting `AFL_LLVM_INJECTIONS_XSS` will enable XSS injection hooking
|
||||||
|
|
||||||
#### LAF-INTEL
|
#### LAF-INTEL
|
||||||
|
|
||||||
This great feature will split compares into series of single byte comparisons to
|
This great feature will split compares into series of single byte comparisons to
|
||||||
|
@ -94,8 +94,7 @@ For more information, see
|
|||||||
|
|
||||||
In FRIDA mode, you can fuzz binary-only targets as easily as with QEMU mode.
|
In FRIDA mode, you can fuzz binary-only targets as easily as with QEMU mode.
|
||||||
FRIDA mode is most of the times slightly faster than QEMU mode. It is also
|
FRIDA mode is most of the times slightly faster than QEMU mode. It is also
|
||||||
newer, lacks COMPCOV, and has the advantage that it works on MacOS (both intel
|
newer, and has the advantage that it works on MacOS (both intel and M1).
|
||||||
and M1).
|
|
||||||
|
|
||||||
To build FRIDA mode:
|
To build FRIDA mode:
|
||||||
|
|
||||||
@ -113,10 +112,6 @@ The mode is approximately 2-5x slower than compile-time instrumentation, and is
|
|||||||
less conducive to parallelization. But for binary-only fuzzing, it gives a huge
|
less conducive to parallelization. But for binary-only fuzzing, it gives a huge
|
||||||
speed improvement if it is possible to use.
|
speed improvement if it is possible to use.
|
||||||
|
|
||||||
If you want to fuzz a binary-only library, then you can fuzz it with frida-gum
|
|
||||||
via frida_mode/. You will have to write a harness to call the target function in
|
|
||||||
the library, use afl-frida.c as a template.
|
|
||||||
|
|
||||||
You can also perform remote fuzzing with frida, e.g., if you want to fuzz on
|
You can also perform remote fuzzing with frida, e.g., if you want to fuzz on
|
||||||
iPhone or Android devices, for this you can use
|
iPhone or Android devices, for this you can use
|
||||||
[https://github.com/ttdennis/fpicker/](https://github.com/ttdennis/fpicker/) as
|
[https://github.com/ttdennis/fpicker/](https://github.com/ttdennis/fpicker/) as
|
||||||
@ -302,7 +297,6 @@ some are very hard to set up...
|
|||||||
* S2E: [https://github.com/S2E](https://github.com/S2E)
|
* S2E: [https://github.com/S2E](https://github.com/S2E)
|
||||||
* TinyInst:
|
* TinyInst:
|
||||||
[https://github.com/googleprojectzero/TinyInst](https://github.com/googleprojectzero/TinyInst)
|
[https://github.com/googleprojectzero/TinyInst](https://github.com/googleprojectzero/TinyInst)
|
||||||
(Mac/Windows only)
|
|
||||||
* ... please send me any missing that are good
|
* ... please send me any missing that are good
|
||||||
|
|
||||||
## Closing words
|
## Closing words
|
||||||
|
File diff suppressed because one or more lines are too long
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
@ -21,7 +21,7 @@ training, then we can highly recommend the following:
|
|||||||
|
|
||||||
* [https://github.com/antonio-morales/Fuzzing101](https://github.com/antonio-morales/Fuzzing101)
|
* [https://github.com/antonio-morales/Fuzzing101](https://github.com/antonio-morales/Fuzzing101)
|
||||||
|
|
||||||
Here is a good forkflow description (and tutorial) for qemu_mode:
|
Here is a good workflow description (and tutorial) for qemu_mode:
|
||||||
|
|
||||||
* [https://airbus-seclab.github.io/AFLplusplus-blogpost/](https://airbus-seclab.github.io/AFLplusplus-blogpost/)
|
* [https://airbus-seclab.github.io/AFLplusplus-blogpost/](https://airbus-seclab.github.io/AFLplusplus-blogpost/)
|
||||||
|
|
||||||
@ -41,6 +41,9 @@ structure is), these links have you covered (some are outdated though):
|
|||||||
* Superion for AFL++:
|
* Superion for AFL++:
|
||||||
[https://github.com/adrian-rt/superion-mutator](https://github.com/adrian-rt/superion-mutator)
|
[https://github.com/adrian-rt/superion-mutator](https://github.com/adrian-rt/superion-mutator)
|
||||||
|
|
||||||
|
For a very in-depth explanation on how AFL++ works check out:
|
||||||
|
[https://blog.ritsec.club/posts/afl-under-hood/](https://blog.ritsec.club/posts/afl-under-hood/)
|
||||||
|
|
||||||
## Video Tutorials
|
## Video Tutorials
|
||||||
|
|
||||||
* [Install AFL++ Ubuntu](https://www.youtube.com/watch?v=5dCvhkbi3RA)
|
* [Install AFL++ Ubuntu](https://www.youtube.com/watch?v=5dCvhkbi3RA)
|
||||||
|
@ -390,7 +390,7 @@ Consider the [following](test/js/test2.c) test code...
|
|||||||
--------------------------------------------------------
|
--------------------------------------------------------
|
||||||
Originally written by Michal Zalewski
|
Originally written by Michal Zalewski
|
||||||
Copyright 2014 Google Inc. All rights reserved.
|
Copyright 2014 Google Inc. All rights reserved.
|
||||||
Copyright 2019-2023 AFLplusplus Project. All rights reserved.
|
Copyright 2019-2024 AFLplusplus Project. All rights reserved.
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
You may obtain a copy of the License at:
|
You may obtain a copy of the License at:
|
||||||
|
@ -49,10 +49,10 @@ extern void __libc_init(void *raw_args, void (*onexit)(void) __unused,
|
|||||||
int (*slingshot)(int, char **, char **),
|
int (*slingshot)(int, char **, char **),
|
||||||
structors_array_t const *const structors);
|
structors_array_t const *const structors);
|
||||||
#else
|
#else
|
||||||
extern int __libc_start_main(int (*main)(int, char **, char **), int argc,
|
extern int __libc_start_main(int (*main)(int, char **, char **), int argc,
|
||||||
char **ubp_av, void (*init)(void),
|
char **ubp_av, void (*init)(void),
|
||||||
void (*fini)(void), void (*rtld_fini)(void),
|
void (*fini)(void), void (*rtld_fini)(void),
|
||||||
void(*stack_end));
|
void(*stack_end));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
typedef int (*main_fn_t)(int argc, char **argv, char **envp);
|
typedef int (*main_fn_t)(int argc, char **argv, char **envp);
|
||||||
@ -166,7 +166,7 @@ static void afl_print_env(void) {
|
|||||||
|
|
||||||
if (fd < 0) {
|
if (fd < 0) {
|
||||||
|
|
||||||
FWARNF("Failed to open /proc/self/cmdline, errno: (%d)", errno);
|
FWARNF("Failed to open /proc/self/environ, errno: (%d)", errno);
|
||||||
return;
|
return;
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -174,7 +174,7 @@ static void afl_print_env(void) {
|
|||||||
ssize_t bytes_read = read(fd, buffer, PROC_MAX - 1);
|
ssize_t bytes_read = read(fd, buffer, PROC_MAX - 1);
|
||||||
if (bytes_read < 0) {
|
if (bytes_read < 0) {
|
||||||
|
|
||||||
FFATAL("Failed to read /proc/self/cmdline, errno: (%d)", errno);
|
FFATAL("Failed to read /proc/self/environ, errno: (%d)", errno);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -653,7 +653,7 @@ void ranges_init(void) {
|
|||||||
/*
|
/*
|
||||||
* After step 4 we have the total ranges to be instrumented, we now subtract
|
* After step 4 we have the total ranges to be instrumented, we now subtract
|
||||||
* that either from the original ranges of the modules or from the whole
|
* that either from the original ranges of the modules or from the whole
|
||||||
* memory if AFL_INST_NO_DYNAMIC_LOAD to configure the stalker.
|
* memory if AFL_FRIDA_INST_NO_DYNAMIC_LOAD to configure the stalker.
|
||||||
*/
|
*/
|
||||||
if (ranges_inst_dynamic_load) {
|
if (ranges_inst_dynamic_load) {
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
//
|
//
|
||||||
// Author: Mateusz Jurczyk (mjurczyk@google.com)
|
// Author: Mateusz Jurczyk (mjurczyk@google.com)
|
||||||
//
|
//
|
||||||
// Copyright 2019-2023 Google LLC
|
// Copyright 2019-2024 Google LLC
|
||||||
//
|
//
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
// you may not use this file except in compliance with the License.
|
// you may not use this file except in compliance with the License.
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
--------------------------------------------------------
|
--------------------------------------------------------
|
||||||
Originally written by Michal Zalewski
|
Originally written by Michal Zalewski
|
||||||
Copyright 2014 Google Inc. All rights reserved.
|
Copyright 2014 Google Inc. All rights reserved.
|
||||||
Copyright 2019-2023 AFLplusplus Project. All rights reserved.
|
Copyright 2019-2024 AFLplusplus Project. All rights reserved.
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
You may obtain a copy of the License at:
|
You may obtain a copy of the License at:
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
--------------------------------------------------------
|
--------------------------------------------------------
|
||||||
Originally written by Michal Zalewski
|
Originally written by Michal Zalewski
|
||||||
Copyright 2014 Google Inc. All rights reserved.
|
Copyright 2014 Google Inc. All rights reserved.
|
||||||
Copyright 2019-2023 AFLplusplus Project. All rights reserved.
|
Copyright 2019-2024 AFLplusplus Project. All rights reserved.
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
You may obtain a copy of the License at:
|
You may obtain a copy of the License at:
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
--------------------------------------------------------
|
--------------------------------------------------------
|
||||||
Originally written by Michal Zalewski
|
Originally written by Michal Zalewski
|
||||||
Copyright 2014 Google Inc. All rights reserved.
|
Copyright 2014 Google Inc. All rights reserved.
|
||||||
Copyright 2019-2023 AFLplusplus Project. All rights reserved.
|
Copyright 2019-2024 AFLplusplus Project. All rights reserved.
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
You may obtain a copy of the License at:
|
You may obtain a copy of the License at:
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
--------------------------------------------------------
|
--------------------------------------------------------
|
||||||
Originally written by Michal Zalewski
|
Originally written by Michal Zalewski
|
||||||
Copyright 2014 Google Inc. All rights reserved.
|
Copyright 2014 Google Inc. All rights reserved.
|
||||||
Copyright 2019-2023 AFLplusplus Project. All rights reserved.
|
Copyright 2019-2024 AFLplusplus Project. All rights reserved.
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
You may obtain a copy of the License at:
|
You may obtain a copy of the License at:
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
--------------------------------------------------------
|
--------------------------------------------------------
|
||||||
Originally written by Michal Zalewski
|
Originally written by Michal Zalewski
|
||||||
Copyright 2014 Google Inc. All rights reserved.
|
Copyright 2014 Google Inc. All rights reserved.
|
||||||
Copyright 2019-2023 AFLplusplus Project. All rights reserved.
|
Copyright 2019-2024 AFLplusplus Project. All rights reserved.
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
You may obtain a copy of the License at:
|
You may obtain a copy of the License at:
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
--------------------------------------------------------
|
--------------------------------------------------------
|
||||||
Originally written by Michal Zalewski
|
Originally written by Michal Zalewski
|
||||||
Copyright 2014 Google Inc. All rights reserved.
|
Copyright 2014 Google Inc. All rights reserved.
|
||||||
Copyright 2019-2023 AFLplusplus Project. All rights reserved.
|
Copyright 2019-2024 AFLplusplus Project. All rights reserved.
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
You may obtain a copy of the License at:
|
You may obtain a copy of the License at:
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
--------------------------------------------------------
|
--------------------------------------------------------
|
||||||
Originally written by Michal Zalewski
|
Originally written by Michal Zalewski
|
||||||
Copyright 2014 Google Inc. All rights reserved.
|
Copyright 2014 Google Inc. All rights reserved.
|
||||||
Copyright 2019-2023 AFLplusplus Project. All rights reserved.
|
Copyright 2019-2024 AFLplusplus Project. All rights reserved.
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
You may obtain a copy of the License at:
|
You may obtain a copy of the License at:
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
--------------------------------------------------------
|
--------------------------------------------------------
|
||||||
Originally written by Michal Zalewski
|
Originally written by Michal Zalewski
|
||||||
Copyright 2014 Google Inc. All rights reserved.
|
Copyright 2014 Google Inc. All rights reserved.
|
||||||
Copyright 2019-2023 AFLplusplus Project. All rights reserved.
|
Copyright 2019-2024 AFLplusplus Project. All rights reserved.
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
You may obtain a copy of the License at:
|
You may obtain a copy of the License at:
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
--------------------------------------------------------
|
--------------------------------------------------------
|
||||||
Originally written by Michal Zalewski
|
Originally written by Michal Zalewski
|
||||||
Copyright 2014 Google Inc. All rights reserved.
|
Copyright 2014 Google Inc. All rights reserved.
|
||||||
Copyright 2019-2023 AFLplusplus Project. All rights reserved.
|
Copyright 2019-2024 AFLplusplus Project. All rights reserved.
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
You may obtain a copy of the License at:
|
You may obtain a copy of the License at:
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
--------------------------------------------------------
|
--------------------------------------------------------
|
||||||
Originally written by Michal Zalewski
|
Originally written by Michal Zalewski
|
||||||
Copyright 2014 Google Inc. All rights reserved.
|
Copyright 2014 Google Inc. All rights reserved.
|
||||||
Copyright 2019-2023 AFLplusplus Project. All rights reserved.
|
Copyright 2019-2024 AFLplusplus Project. All rights reserved.
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
You may obtain a copy of the License at:
|
You may obtain a copy of the License at:
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
--------------------------------------------------------
|
--------------------------------------------------------
|
||||||
Originally written by Michal Zalewski
|
Originally written by Michal Zalewski
|
||||||
Copyright 2014 Google Inc. All rights reserved.
|
Copyright 2014 Google Inc. All rights reserved.
|
||||||
Copyright 2019-2023 AFLplusplus Project. All rights reserved.
|
Copyright 2019-2024 AFLplusplus Project. All rights reserved.
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
You may obtain a copy of the License at:
|
You may obtain a copy of the License at:
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# Copyright 2023 AFLplusplus
|
# Copyright 2024 AFLplusplus
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
Dominik Maier <mail@dmnk.co>
|
Dominik Maier <mail@dmnk.co>
|
||||||
|
|
||||||
Copyright 2016, 2017 Google Inc. All rights reserved.
|
Copyright 2016, 2017 Google Inc. All rights reserved.
|
||||||
Copyright 2019-2023 AFLplusplus Project. All rights reserved.
|
Copyright 2019-2024 AFLplusplus Project. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
Dominik Maier <mail@dmnk.co>
|
Dominik Maier <mail@dmnk.co>
|
||||||
|
|
||||||
Copyright 2016, 2017 Google Inc. All rights reserved.
|
Copyright 2016, 2017 Google Inc. All rights reserved.
|
||||||
Copyright 2019-2023 AFLplusplus Project. All rights reserved.
|
Copyright 2019-2024 AFLplusplus Project. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
@ -149,6 +149,48 @@ struct tainted {
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct inf_profile {
|
||||||
|
|
||||||
|
u32 inf_skipped_bytes; /* Inference Stage Profiling */
|
||||||
|
u64 inf_execs_cost, inf_time_cost;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
/* ToDo: add cmplog profile as well */
|
||||||
|
struct havoc_profile {
|
||||||
|
|
||||||
|
u32 queued_det_stage, /* Det/Havoc Stage Profiling */
|
||||||
|
queued_havoc_stage, total_queued_det, edge_det_stage, edge_havoc_stage,
|
||||||
|
total_det_edge;
|
||||||
|
|
||||||
|
u64 det_stage_time, havoc_stage_time, total_det_time;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
struct skipdet_entry {
|
||||||
|
|
||||||
|
u8 continue_inf, done_eff;
|
||||||
|
u32 undet_bits, quick_eff_bytes;
|
||||||
|
|
||||||
|
u8 *skip_eff_map, /* we'v finish the eff_map */
|
||||||
|
*done_inf_map; /* some bytes are not done yet */
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
struct skipdet_global {
|
||||||
|
|
||||||
|
u8 use_skip_havoc;
|
||||||
|
|
||||||
|
u32 undet_bits_threshold;
|
||||||
|
|
||||||
|
u64 last_cov_undet;
|
||||||
|
|
||||||
|
u8 *virgin_det_bits; /* global fuzzed bits */
|
||||||
|
|
||||||
|
struct inf_profile *inf_prof;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
struct queue_entry {
|
struct queue_entry {
|
||||||
|
|
||||||
u8 *fname; /* File name for the test case */
|
u8 *fname; /* File name for the test case */
|
||||||
@ -203,6 +245,8 @@ struct queue_entry {
|
|||||||
|
|
||||||
struct queue_entry *mother; /* queue entry this based on */
|
struct queue_entry *mother; /* queue entry this based on */
|
||||||
|
|
||||||
|
struct skipdet_entry *skipdet_e;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
struct extra_data {
|
struct extra_data {
|
||||||
@ -247,6 +291,8 @@ enum {
|
|||||||
/* 19 */ STAGE_CUSTOM_MUTATOR,
|
/* 19 */ STAGE_CUSTOM_MUTATOR,
|
||||||
/* 20 */ STAGE_COLORIZATION,
|
/* 20 */ STAGE_COLORIZATION,
|
||||||
/* 21 */ STAGE_ITS,
|
/* 21 */ STAGE_ITS,
|
||||||
|
/* 22 */ STAGE_INF,
|
||||||
|
/* 23 */ STAGE_QUICK,
|
||||||
|
|
||||||
STAGE_NUM_MAX
|
STAGE_NUM_MAX
|
||||||
|
|
||||||
@ -345,6 +391,7 @@ enum {
|
|||||||
/* 13 */ PY_FUNC_DESCRIBE,
|
/* 13 */ PY_FUNC_DESCRIBE,
|
||||||
/* 14 */ PY_FUNC_FUZZ_SEND,
|
/* 14 */ PY_FUNC_FUZZ_SEND,
|
||||||
/* 15 */ PY_FUNC_SPLICE_OPTOUT,
|
/* 15 */ PY_FUNC_SPLICE_OPTOUT,
|
||||||
|
/* 16 */ PY_FUNC_POST_RUN,
|
||||||
PY_FUNC_COUNT
|
PY_FUNC_COUNT
|
||||||
|
|
||||||
};
|
};
|
||||||
@ -781,6 +828,11 @@ typedef struct afl_state {
|
|||||||
* is too large) */
|
* is too large) */
|
||||||
struct queue_entry **q_testcase_cache;
|
struct queue_entry **q_testcase_cache;
|
||||||
|
|
||||||
|
/* Global Profile Data for deterministic/havoc-splice stage */
|
||||||
|
struct havoc_profile *havoc_prof;
|
||||||
|
|
||||||
|
struct skipdet_global *skipdet_g;
|
||||||
|
|
||||||
#ifdef INTROSPECTION
|
#ifdef INTROSPECTION
|
||||||
char mutation[8072];
|
char mutation[8072];
|
||||||
char m_tmp[4096];
|
char m_tmp[4096];
|
||||||
@ -1020,6 +1072,16 @@ struct custom_mutator {
|
|||||||
*/
|
*/
|
||||||
void (*afl_custom_fuzz_send)(void *data, const u8 *buf, size_t buf_size);
|
void (*afl_custom_fuzz_send)(void *data, const u8 *buf, size_t buf_size);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method can be used if you want to run some code or scripts each time
|
||||||
|
* AFL++ executes the target with afl-fuzz.
|
||||||
|
*
|
||||||
|
* (Optional)
|
||||||
|
*
|
||||||
|
* @param data pointer returned in afl_custom_init by this custom mutator
|
||||||
|
*/
|
||||||
|
void (*afl_custom_post_run)(void *data);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Allow for additional analysis (e.g. calling a different tool that does a
|
* Allow for additional analysis (e.g. calling a different tool that does a
|
||||||
* different kind of coverage and saves this for the custom mutator).
|
* different kind of coverage and saves this for the custom mutator).
|
||||||
@ -1075,6 +1137,7 @@ void finalize_py_module(void *);
|
|||||||
|
|
||||||
u32 fuzz_count_py(void *, const u8 *, size_t);
|
u32 fuzz_count_py(void *, const u8 *, size_t);
|
||||||
void fuzz_send_py(void *, const u8 *, size_t);
|
void fuzz_send_py(void *, const u8 *, size_t);
|
||||||
|
void post_run_py(void *);
|
||||||
size_t post_process_py(void *, u8 *, size_t, u8 **);
|
size_t post_process_py(void *, u8 *, size_t, u8 **);
|
||||||
s32 init_trim_py(void *, u8 *, size_t);
|
s32 init_trim_py(void *, u8 *, size_t);
|
||||||
s32 post_trim_py(void *, u8);
|
s32 post_trim_py(void *, u8);
|
||||||
@ -1220,6 +1283,13 @@ AFL_RAND_RETURN rand_next(afl_state_t *afl);
|
|||||||
/* probability between 0.0 and 1.0 */
|
/* probability between 0.0 and 1.0 */
|
||||||
double rand_next_percent(afl_state_t *afl);
|
double rand_next_percent(afl_state_t *afl);
|
||||||
|
|
||||||
|
/* SkipDet Functions */
|
||||||
|
|
||||||
|
u8 skip_deterministic_stage(afl_state_t *, u8 *, u8 *, u32, u64);
|
||||||
|
u8 is_det_timeout(u64, u8);
|
||||||
|
|
||||||
|
void plot_profile_data(afl_state_t *, struct queue_entry *);
|
||||||
|
|
||||||
/**** Inline routines ****/
|
/**** Inline routines ****/
|
||||||
|
|
||||||
/* Generate a random number (from 0 to limit - 1). This may
|
/* Generate a random number (from 0 to limit - 1). This may
|
||||||
|
@ -1082,6 +1082,7 @@ u32 mutation_strategy_exploration_binary[MUT_STRATEGY_ARRAY_SIZE] = {
|
|||||||
MUT_CLONE_COPY,
|
MUT_CLONE_COPY,
|
||||||
MUT_CLONE_COPY,
|
MUT_CLONE_COPY,
|
||||||
MUT_CLONE_COPY,
|
MUT_CLONE_COPY,
|
||||||
|
MUT_CLONE_COPY,
|
||||||
MUT_CLONE_FIXED,
|
MUT_CLONE_FIXED,
|
||||||
MUT_CLONE_FIXED,
|
MUT_CLONE_FIXED,
|
||||||
MUT_CLONE_FIXED,
|
MUT_CLONE_FIXED,
|
||||||
@ -1854,7 +1855,7 @@ inline u32 afl_mutate(afl_state_t *afl, u8 *buf, u32 len, u32 steps,
|
|||||||
|
|
||||||
for (u32 step = 0; step < steps; ++step) {
|
for (u32 step = 0; step < steps; ++step) {
|
||||||
|
|
||||||
retry_havoc_step : {
|
retry_havoc_step: {
|
||||||
|
|
||||||
u32 r = rand_below(afl, MUT_STRATEGY_ARRAY_SIZE), item;
|
u32 r = rand_below(afl, MUT_STRATEGY_ARRAY_SIZE), item;
|
||||||
|
|
||||||
@ -2456,14 +2457,14 @@ inline u32 afl_mutate(afl_state_t *afl, u8 *buf, u32 len, u32 steps,
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
char buf[20];
|
char numbuf[32];
|
||||||
snprintf(buf, sizeof(buf), "%" PRId64, val);
|
snprintf(numbuf, sizeof(buf), "%" PRId64, val);
|
||||||
u32 old_len = off2 - off;
|
u32 old_len = off2 - off;
|
||||||
u32 new_len = strlen(buf);
|
u32 new_len = strlen(numbuf);
|
||||||
|
|
||||||
if (old_len == new_len) {
|
if (old_len == new_len) {
|
||||||
|
|
||||||
memcpy(buf + off, buf, new_len);
|
memcpy(buf + off, numbuf, new_len);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
@ -2473,7 +2474,7 @@ inline u32 afl_mutate(afl_state_t *afl, u8 *buf, u32 len, u32 steps,
|
|||||||
|
|
||||||
/* Inserted part */
|
/* Inserted part */
|
||||||
|
|
||||||
memcpy(tmp_buf + off, buf, new_len);
|
memcpy(tmp_buf + off, numbuf, new_len);
|
||||||
|
|
||||||
/* Tail */
|
/* Tail */
|
||||||
memcpy(tmp_buf + off + new_len, buf + off2, len - off2);
|
memcpy(tmp_buf + off + new_len, buf + off2, len - off2);
|
||||||
@ -2490,12 +2491,13 @@ inline u32 afl_mutate(afl_state_t *afl, u8 *buf, u32 len, u32 steps,
|
|||||||
|
|
||||||
case MUT_INSERTASCIINUM: {
|
case MUT_INSERTASCIINUM: {
|
||||||
|
|
||||||
u32 len = 1 + rand_below(afl, 8);
|
u32 ins_len = 1 + rand_below(afl, 8);
|
||||||
u32 pos = rand_below(afl, len);
|
u32 pos = rand_below(afl, len);
|
||||||
|
|
||||||
/* Insert ascii number. */
|
/* Insert ascii number. */
|
||||||
if (unlikely(len < pos + len)) {
|
if (unlikely(len < pos + ins_len)) {
|
||||||
|
|
||||||
|
// no retry if we have a small input
|
||||||
if (unlikely(len < 8)) {
|
if (unlikely(len < 8)) {
|
||||||
|
|
||||||
break;
|
break;
|
||||||
@ -2509,9 +2511,22 @@ inline u32 afl_mutate(afl_state_t *afl, u8 *buf, u32 len, u32 steps,
|
|||||||
}
|
}
|
||||||
|
|
||||||
u64 val = rand_next(afl);
|
u64 val = rand_next(afl);
|
||||||
char buf[20];
|
char numbuf[32];
|
||||||
snprintf(buf, sizeof(buf), "%llu", val);
|
snprintf(numbuf, sizeof(numbuf), "%llu", val);
|
||||||
memcpy(buf + pos, buf, len);
|
size_t val_len = strlen(numbuf), off;
|
||||||
|
|
||||||
|
if (ins_len > val_len) {
|
||||||
|
|
||||||
|
ins_len = val_len;
|
||||||
|
off = 0;
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
off = val_len - ins_len;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
memcpy(buf + pos, numbuf + off, ins_len);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
Dominik Maier <mail@dmnk.co>
|
Dominik Maier <mail@dmnk.co>
|
||||||
|
|
||||||
Copyright 2016, 2017 Google Inc. All rights reserved.
|
Copyright 2016, 2017 Google Inc. All rights reserved.
|
||||||
Copyright 2019-2023 AFLplusplus Project. All rights reserved.
|
Copyright 2019-2024 AFLplusplus Project. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
Dominik Maier <mail@dmnk.co>
|
Dominik Maier <mail@dmnk.co>
|
||||||
|
|
||||||
Copyright 2016, 2017 Google Inc. All rights reserved.
|
Copyright 2016, 2017 Google Inc. All rights reserved.
|
||||||
Copyright 2019-2023 AFLplusplus Project. All rights reserved.
|
Copyright 2019-2024 AFLplusplus Project. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
Dominik Maier <mail@dmnk.co>
|
Dominik Maier <mail@dmnk.co>
|
||||||
|
|
||||||
Copyright 2016, 2017 Google Inc. All rights reserved.
|
Copyright 2016, 2017 Google Inc. All rights reserved.
|
||||||
Copyright 2019-2023 AFLplusplus Project. All rights reserved.
|
Copyright 2019-2024 AFLplusplus Project. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
Dominik Maier <mail@dmnk.co>
|
Dominik Maier <mail@dmnk.co>
|
||||||
|
|
||||||
Copyright 2016, 2017 Google Inc. All rights reserved.
|
Copyright 2016, 2017 Google Inc. All rights reserved.
|
||||||
Copyright 2019-2023 AFLplusplus Project. All rights reserved.
|
Copyright 2019-2024 AFLplusplus Project. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
Heiko Eissfeldt <heiko.eissfeldt@hexco.de>,
|
Heiko Eissfeldt <heiko.eissfeldt@hexco.de>,
|
||||||
|
|
||||||
Copyright 2016, 2017 Google Inc. All rights reserved.
|
Copyright 2016, 2017 Google Inc. All rights reserved.
|
||||||
Copyright 2019-2023 AFLplusplus Project. All rights reserved.
|
Copyright 2019-2024 AFLplusplus Project. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
@ -26,7 +26,7 @@
|
|||||||
/* Version string: */
|
/* Version string: */
|
||||||
|
|
||||||
// c = release, a = volatile github dev, e = experimental branch
|
// c = release, a = volatile github dev, e = experimental branch
|
||||||
#define VERSION "++4.09a"
|
#define VERSION "++4.10c"
|
||||||
|
|
||||||
/******************************************************
|
/******************************************************
|
||||||
* *
|
* *
|
||||||
@ -52,6 +52,18 @@
|
|||||||
/* Default file permission umode when creating files (default: 0600) */
|
/* Default file permission umode when creating files (default: 0600) */
|
||||||
#define DEFAULT_PERMISSION 0600
|
#define DEFAULT_PERMISSION 0600
|
||||||
|
|
||||||
|
/* SkipDet's global configuration */
|
||||||
|
|
||||||
|
#define MINIMAL_BLOCK_SIZE 64
|
||||||
|
#define SMALL_DET_TIME (60 * 1000 * 1000U)
|
||||||
|
#define MAXIMUM_INF_EXECS (16 * 1024U)
|
||||||
|
#define MAXIMUM_QUICK_EFF_EXECS (64 * 1024U)
|
||||||
|
#define THRESHOLD_DEC_TIME (20 * 60 * 1000U)
|
||||||
|
|
||||||
|
/* Set the Prob of selecting eff_bytes 3 times more than original,
|
||||||
|
Now disabled */
|
||||||
|
#define EFF_HAVOC_RATE 3
|
||||||
|
|
||||||
/* CMPLOG/REDQUEEN TUNING
|
/* CMPLOG/REDQUEEN TUNING
|
||||||
*
|
*
|
||||||
* Here you can modify tuning and solving options for CMPLOG.
|
* Here you can modify tuning and solving options for CMPLOG.
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
Dominik Maier <mail@dmnk.co>
|
Dominik Maier <mail@dmnk.co>
|
||||||
|
|
||||||
Copyright 2016, 2017 Google Inc. All rights reserved.
|
Copyright 2016, 2017 Google Inc. All rights reserved.
|
||||||
Copyright 2019-2023 AFLplusplus Project. All rights reserved.
|
Copyright 2019-2024 AFLplusplus Project. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
|
315
include/envs.h
315
include/envs.h
@ -16,249 +16,104 @@ static char *afl_environment_deprecated[] = {
|
|||||||
|
|
||||||
static char *afl_environment_variables[] = {
|
static char *afl_environment_variables[] = {
|
||||||
|
|
||||||
"AFL_ALIGNED_ALLOC",
|
"AFL_ALIGNED_ALLOC", "AFL_ALLOW_TMP", "AFL_ANALYZE_HEX", "AFL_AS",
|
||||||
"AFL_ALLOW_TMP",
|
"AFL_AUTORESUME", "AFL_AS_FORCE_INSTRUMENT", "AFL_BENCH_JUST_ONE",
|
||||||
"AFL_ANALYZE_HEX",
|
"AFL_BENCH_UNTIL_CRASH", "AFL_CAL_FAST", "AFL_CC", "AFL_CC_COMPILER",
|
||||||
"AFL_AS",
|
"AFL_CMIN_ALLOW_ANY", "AFL_CMIN_CRASHES_ONLY", "AFL_CMPLOG_ONLY_NEW",
|
||||||
"AFL_AUTORESUME",
|
"AFL_CODE_END", "AFL_CODE_START", "AFL_COMPCOV_BINNAME",
|
||||||
"AFL_AS_FORCE_INSTRUMENT",
|
"AFL_COMPCOV_LEVEL", "AFL_CRASH_EXITCODE",
|
||||||
"AFL_BENCH_JUST_ONE",
|
"AFL_CRASHING_SEEDS_AS_NEW_CRASH", "AFL_CUSTOM_MUTATOR_LIBRARY",
|
||||||
"AFL_BENCH_UNTIL_CRASH",
|
"AFL_CUSTOM_MUTATOR_ONLY", "AFL_CUSTOM_INFO_PROGRAM",
|
||||||
"AFL_CAL_FAST",
|
"AFL_CUSTOM_INFO_PROGRAM_ARGV", "AFL_CUSTOM_INFO_PROGRAM_INPUT",
|
||||||
"AFL_CC",
|
"AFL_CUSTOM_INFO_OUT", "AFL_CXX", "AFL_CYCLE_SCHEDULES", "AFL_DEBUG",
|
||||||
"AFL_CC_COMPILER",
|
"AFL_DEBUG_CHILD", "AFL_DEBUG_GDB", "AFL_DEBUG_UNICORN", "AFL_DISABLE_TRIM",
|
||||||
"AFL_CMIN_ALLOW_ANY",
|
"AFL_DISABLE_LLVM_INSTRUMENTATION", "AFL_DONT_OPTIMIZE",
|
||||||
"AFL_CMIN_CRASHES_ONLY",
|
"AFL_DRIVER_STDERR_DUPLICATE_FILENAME", "AFL_DUMB_FORKSRV",
|
||||||
"AFL_CMPLOG_ONLY_NEW",
|
"AFL_EARLY_FORKSERVER", "AFL_ENTRYPOINT", "AFL_EXIT_WHEN_DONE",
|
||||||
"AFL_CODE_END",
|
"AFL_EXIT_ON_TIME", "AFL_EXIT_ON_SEED_ISSUES", "AFL_FAST_CAL",
|
||||||
"AFL_CODE_START",
|
"AFL_FINAL_SYNC", "AFL_FORCE_UI", "AFL_FRIDA_DEBUG_MAPS",
|
||||||
"AFL_COMPCOV_BINNAME",
|
"AFL_FRIDA_DRIVER_NO_HOOK", "AFL_FRIDA_EXCLUDE_RANGES",
|
||||||
"AFL_COMPCOV_LEVEL",
|
"AFL_FRIDA_INST_CACHE_SIZE", "AFL_FRIDA_INST_COVERAGE_ABSOLUTE",
|
||||||
"AFL_CRASH_EXITCODE",
|
"AFL_FRIDA_INST_COVERAGE_FILE", "AFL_FRIDA_INST_DEBUG_FILE",
|
||||||
"AFL_CRASHING_SEEDS_AS_NEW_CRASH",
|
"AFL_FRIDA_INST_INSN", "AFL_FRIDA_INST_JIT", "AFL_FRIDA_INST_NO_CACHE",
|
||||||
"AFL_CUSTOM_MUTATOR_LIBRARY",
|
"AFL_FRIDA_INST_NO_DYNAMIC_LOAD", "AFL_FRIDA_INST_NO_OPTIMIZE",
|
||||||
"AFL_CUSTOM_MUTATOR_ONLY",
|
"AFL_FRIDA_INST_NO_PREFETCH", "AFL_FRIDA_INST_NO_PREFETCH_BACKPATCH",
|
||||||
"AFL_CUSTOM_INFO_PROGRAM",
|
|
||||||
"AFL_CUSTOM_INFO_PROGRAM_ARGV",
|
|
||||||
"AFL_CUSTOM_INFO_PROGRAM_INPUT",
|
|
||||||
"AFL_CUSTOM_INFO_OUT",
|
|
||||||
"AFL_CXX",
|
|
||||||
"AFL_CYCLE_SCHEDULES",
|
|
||||||
"AFL_DEBUG",
|
|
||||||
"AFL_DEBUG_CHILD",
|
|
||||||
"AFL_DEBUG_GDB",
|
|
||||||
"AFL_DEBUG_UNICORN",
|
|
||||||
"AFL_DISABLE_TRIM",
|
|
||||||
"AFL_DISABLE_LLVM_INSTRUMENTATION",
|
|
||||||
"AFL_DONT_OPTIMIZE",
|
|
||||||
"AFL_DRIVER_STDERR_DUPLICATE_FILENAME",
|
|
||||||
"AFL_DUMB_FORKSRV",
|
|
||||||
"AFL_EARLY_FORKSERVER",
|
|
||||||
"AFL_ENTRYPOINT",
|
|
||||||
"AFL_EXIT_WHEN_DONE",
|
|
||||||
"AFL_EXIT_ON_TIME",
|
|
||||||
"AFL_EXIT_ON_SEED_ISSUES",
|
|
||||||
"AFL_FAST_CAL",
|
|
||||||
"AFL_FINAL_SYNC",
|
|
||||||
"AFL_FORCE_UI",
|
|
||||||
"AFL_FRIDA_DEBUG_MAPS",
|
|
||||||
"AFL_FRIDA_DRIVER_NO_HOOK",
|
|
||||||
"AFL_FRIDA_EXCLUDE_RANGES",
|
|
||||||
"AFL_FRIDA_INST_CACHE_SIZE",
|
|
||||||
"AFL_FRIDA_INST_COVERAGE_ABSOLUTE",
|
|
||||||
"AFL_FRIDA_INST_COVERAGE_FILE",
|
|
||||||
"AFL_FRIDA_INST_DEBUG_FILE",
|
|
||||||
"AFL_FRIDA_INST_INSN",
|
|
||||||
"AFL_FRIDA_INST_JIT",
|
|
||||||
"AFL_FRIDA_INST_NO_CACHE",
|
|
||||||
"AFL_FRIDA_INST_NO_DYNAMIC_LOAD",
|
|
||||||
"AFL_FRIDA_INST_NO_OPTIMIZE",
|
|
||||||
"AFL_FRIDA_INST_NO_PREFETCH",
|
|
||||||
"AFL_FRIDA_INST_NO_PREFETCH_BACKPATCH",
|
|
||||||
"AFL_FRIDA_INST_NO_SUPPRESS"
|
"AFL_FRIDA_INST_NO_SUPPRESS"
|
||||||
"AFL_FRIDA_INST_RANGES",
|
"AFL_FRIDA_INST_RANGES",
|
||||||
"AFL_FRIDA_INST_REGS_FILE",
|
"AFL_FRIDA_INST_REGS_FILE", "AFL_FRIDA_INST_SEED", "AFL_FRIDA_INST_TRACE",
|
||||||
"AFL_FRIDA_INST_SEED",
|
"AFL_FRIDA_INST_TRACE_UNIQUE", "AFL_FRIDA_INST_UNSTABLE_COVERAGE_FILE",
|
||||||
"AFL_FRIDA_INST_TRACE",
|
"AFL_FRIDA_JS_SCRIPT", "AFL_FRIDA_OUTPUT_STDOUT", "AFL_FRIDA_OUTPUT_STDERR",
|
||||||
"AFL_FRIDA_INST_TRACE_UNIQUE",
|
"AFL_FRIDA_PERSISTENT_ADDR", "AFL_FRIDA_PERSISTENT_CNT",
|
||||||
"AFL_FRIDA_INST_UNSTABLE_COVERAGE_FILE",
|
"AFL_FRIDA_PERSISTENT_DEBUG", "AFL_FRIDA_PERSISTENT_HOOK",
|
||||||
"AFL_FRIDA_JS_SCRIPT",
|
"AFL_FRIDA_PERSISTENT_RET", "AFL_FRIDA_STALKER_ADJACENT_BLOCKS",
|
||||||
"AFL_FRIDA_OUTPUT_STDOUT",
|
"AFL_FRIDA_STALKER_IC_ENTRIES", "AFL_FRIDA_STALKER_NO_BACKPATCH",
|
||||||
"AFL_FRIDA_OUTPUT_STDERR",
|
"AFL_FRIDA_STATS_FILE", "AFL_FRIDA_STATS_INTERVAL", "AFL_FRIDA_TRACEABLE",
|
||||||
"AFL_FRIDA_PERSISTENT_ADDR",
|
|
||||||
"AFL_FRIDA_PERSISTENT_CNT",
|
|
||||||
"AFL_FRIDA_PERSISTENT_DEBUG",
|
|
||||||
"AFL_FRIDA_PERSISTENT_HOOK",
|
|
||||||
"AFL_FRIDA_PERSISTENT_RET",
|
|
||||||
"AFL_FRIDA_STALKER_ADJACENT_BLOCKS",
|
|
||||||
"AFL_FRIDA_STALKER_IC_ENTRIES",
|
|
||||||
"AFL_FRIDA_STALKER_NO_BACKPATCH",
|
|
||||||
"AFL_FRIDA_STATS_FILE",
|
|
||||||
"AFL_FRIDA_STATS_INTERVAL",
|
|
||||||
"AFL_FRIDA_TRACEABLE",
|
|
||||||
"AFL_FRIDA_VERBOSE",
|
"AFL_FRIDA_VERBOSE",
|
||||||
"AFL_FUZZER_ARGS", // oss-fuzz
|
"AFL_FUZZER_ARGS", // oss-fuzz
|
||||||
"AFL_FUZZER_STATS_UPDATE_INTERVAL",
|
"AFL_FUZZER_STATS_UPDATE_INTERVAL", "AFL_GDB", "AFL_GCC_ALLOWLIST",
|
||||||
"AFL_GDB",
|
"AFL_GCC_DENYLIST", "AFL_GCC_BLOCKLIST", "AFL_GCC_INSTRUMENT_FILE",
|
||||||
"AFL_GCC_ALLOWLIST",
|
"AFL_GCC_OUT_OF_LINE", "AFL_GCC_SKIP_NEVERZERO", "AFL_GCJ",
|
||||||
"AFL_GCC_DENYLIST",
|
"AFL_HANG_TMOUT", "AFL_FORKSRV_INIT_TMOUT", "AFL_HARDEN",
|
||||||
"AFL_GCC_BLOCKLIST",
|
"AFL_I_DONT_CARE_ABOUT_MISSING_CRASHES", "AFL_IGNORE_PROBLEMS",
|
||||||
"AFL_GCC_INSTRUMENT_FILE",
|
"AFL_IGNORE_PROBLEMS_COVERAGE", "AFL_IGNORE_SEED_PROBLEMS",
|
||||||
"AFL_GCC_OUT_OF_LINE",
|
"AFL_IGNORE_TIMEOUTS", "AFL_IGNORE_UNKNOWN_ENVS", "AFL_IMPORT_FIRST",
|
||||||
"AFL_GCC_SKIP_NEVERZERO",
|
"AFL_INPUT_LEN_MIN", "AFL_INPUT_LEN_MAX", "AFL_INST_LIBS", "AFL_INST_RATIO",
|
||||||
"AFL_GCJ",
|
"AFL_KEEP_TIMEOUTS", "AFL_KILL_SIGNAL", "AFL_FORK_SERVER_KILL_SIGNAL",
|
||||||
"AFL_HANG_TMOUT",
|
"AFL_KEEP_TRACES", "AFL_KEEP_ASSEMBLY", "AFL_LD_HARD_FAIL",
|
||||||
"AFL_FORKSRV_INIT_TMOUT",
|
"AFL_LD_LIMIT_MB", "AFL_LD_NO_CALLOC_OVER", "AFL_LD_PASSTHROUGH",
|
||||||
"AFL_HARDEN",
|
"AFL_REAL_LD", "AFL_LD_PRELOAD", "AFL_LD_VERBOSE", "AFL_LLVM_ALLOWLIST",
|
||||||
"AFL_I_DONT_CARE_ABOUT_MISSING_CRASHES",
|
"AFL_LLVM_DENYLIST", "AFL_LLVM_BLOCKLIST", "AFL_CMPLOG", "AFL_LLVM_CMPLOG",
|
||||||
"AFL_IGNORE_PROBLEMS",
|
"AFL_GCC_CMPLOG", "AFL_LLVM_INSTRIM", "AFL_LLVM_CALLER", "AFL_LLVM_CTX",
|
||||||
"AFL_IGNORE_PROBLEMS_COVERAGE",
|
"AFL_LLVM_CTX_K", "AFL_LLVM_DICT2FILE", "AFL_LLVM_DICT2FILE_NO_MAIN",
|
||||||
"AFL_IGNORE_SEED_PROBLEMS",
|
"AFL_LLVM_DOCUMENT_IDS", "AFL_LLVM_INSTRIM_LOOPHEAD", "AFL_LLVM_INSTRUMENT",
|
||||||
"AFL_IGNORE_TIMEOUTS",
|
"AFL_LLVM_LTO_AUTODICTIONARY", "AFL_LLVM_AUTODICTIONARY",
|
||||||
"AFL_IGNORE_UNKNOWN_ENVS",
|
|
||||||
"AFL_IMPORT_FIRST",
|
|
||||||
"AFL_INPUT_LEN_MIN",
|
|
||||||
"AFL_INPUT_LEN_MAX",
|
|
||||||
"AFL_INST_LIBS",
|
|
||||||
"AFL_INST_RATIO",
|
|
||||||
"AFL_KEEP_TIMEOUTS",
|
|
||||||
"AFL_KILL_SIGNAL",
|
|
||||||
"AFL_FORK_SERVER_KILL_SIGNAL",
|
|
||||||
"AFL_KEEP_TRACES",
|
|
||||||
"AFL_KEEP_ASSEMBLY",
|
|
||||||
"AFL_LD_HARD_FAIL",
|
|
||||||
"AFL_LD_LIMIT_MB",
|
|
||||||
"AFL_LD_NO_CALLOC_OVER",
|
|
||||||
"AFL_LD_PASSTHROUGH",
|
|
||||||
"AFL_REAL_LD",
|
|
||||||
"AFL_LD_PRELOAD",
|
|
||||||
"AFL_LD_VERBOSE",
|
|
||||||
"AFL_LLVM_ALLOWLIST",
|
|
||||||
"AFL_LLVM_DENYLIST",
|
|
||||||
"AFL_LLVM_BLOCKLIST",
|
|
||||||
"AFL_CMPLOG",
|
|
||||||
"AFL_LLVM_CMPLOG",
|
|
||||||
"AFL_GCC_CMPLOG",
|
|
||||||
"AFL_LLVM_INSTRIM",
|
|
||||||
"AFL_LLVM_CALLER",
|
|
||||||
"AFL_LLVM_CTX",
|
|
||||||
"AFL_LLVM_CTX_K",
|
|
||||||
"AFL_LLVM_DICT2FILE",
|
|
||||||
"AFL_LLVM_DICT2FILE_NO_MAIN",
|
|
||||||
"AFL_LLVM_DOCUMENT_IDS",
|
|
||||||
"AFL_LLVM_INSTRIM_LOOPHEAD",
|
|
||||||
"AFL_LLVM_INSTRUMENT",
|
|
||||||
"AFL_LLVM_LTO_AUTODICTIONARY",
|
|
||||||
"AFL_LLVM_AUTODICTIONARY",
|
|
||||||
"AFL_LLVM_SKIPSINGLEBLOCK",
|
"AFL_LLVM_SKIPSINGLEBLOCK",
|
||||||
"AFL_LLVM_INSTRIM_SKIPSINGLEBLOCK",
|
// Marker: ADD_TO_INJECTIONS
|
||||||
"AFL_LLVM_LAF_SPLIT_COMPARES",
|
"AFL_LLVM_INJECTIONS_ALL", "AFL_LLVM_INJECTIONS_SQL",
|
||||||
"AFL_LLVM_LAF_SPLIT_COMPARES_BITW",
|
"AFL_LLVM_INJECTIONS_LDAP", "AFL_LLVM_INJECTIONS_XSS",
|
||||||
"AFL_LLVM_LAF_SPLIT_FLOATS",
|
"AFL_LLVM_INSTRIM_SKIPSINGLEBLOCK", "AFL_LLVM_LAF_SPLIT_COMPARES",
|
||||||
"AFL_LLVM_LAF_SPLIT_SWITCHES",
|
"AFL_LLVM_LAF_SPLIT_COMPARES_BITW", "AFL_LLVM_LAF_SPLIT_FLOATS",
|
||||||
"AFL_LLVM_LAF_ALL",
|
"AFL_LLVM_LAF_SPLIT_SWITCHES", "AFL_LLVM_LAF_ALL",
|
||||||
"AFL_LLVM_LAF_TRANSFORM_COMPARES",
|
"AFL_LLVM_LAF_TRANSFORM_COMPARES", "AFL_LLVM_MAP_ADDR",
|
||||||
"AFL_LLVM_MAP_ADDR",
|
"AFL_LLVM_MAP_DYNAMIC", "AFL_LLVM_NGRAM_SIZE", "AFL_NGRAM_SIZE",
|
||||||
"AFL_LLVM_MAP_DYNAMIC",
|
"AFL_LLVM_NO_RPATH", "AFL_LLVM_NOT_ZERO", "AFL_LLVM_INSTRUMENT_FILE",
|
||||||
"AFL_LLVM_NGRAM_SIZE",
|
"AFL_LLVM_THREADSAFE_INST", "AFL_LLVM_SKIP_NEVERZERO", "AFL_NO_AFFINITY",
|
||||||
"AFL_NGRAM_SIZE",
|
"AFL_TRY_AFFINITY", "AFL_LLVM_LTO_DONTWRITEID",
|
||||||
"AFL_LLVM_NO_RPATH",
|
|
||||||
"AFL_LLVM_NOT_ZERO",
|
|
||||||
"AFL_LLVM_INSTRUMENT_FILE",
|
|
||||||
"AFL_LLVM_THREADSAFE_INST",
|
|
||||||
"AFL_LLVM_SKIP_NEVERZERO",
|
|
||||||
"AFL_NO_AFFINITY",
|
|
||||||
"AFL_TRY_AFFINITY",
|
|
||||||
"AFL_LLVM_LTO_DONTWRITEID",
|
|
||||||
"AFL_LLVM_LTO_SKIPINIT"
|
"AFL_LLVM_LTO_SKIPINIT"
|
||||||
"AFL_LLVM_LTO_STARTID",
|
"AFL_LLVM_LTO_STARTID",
|
||||||
"AFL_NO_ARITH",
|
"AFL_FUZZER_LOOPCOUNT", "AFL_NO_ARITH", "AFL_NO_AUTODICT", "AFL_NO_BUILTIN",
|
||||||
"AFL_NO_AUTODICT",
|
|
||||||
"AFL_NO_BUILTIN",
|
|
||||||
#if defined USE_COLOR && !defined ALWAYS_COLORED
|
#if defined USE_COLOR && !defined ALWAYS_COLORED
|
||||||
"AFL_NO_COLOR",
|
"AFL_NO_COLOR", "AFL_NO_COLOUR",
|
||||||
"AFL_NO_COLOUR",
|
|
||||||
#endif
|
#endif
|
||||||
"AFL_NO_CPU_RED",
|
"AFL_NO_CPU_RED",
|
||||||
"AFL_NO_CFG_FUZZING", // afl.rs rust crate option
|
"AFL_NO_CFG_FUZZING", // afl.rs rust crate option
|
||||||
"AFL_NO_CRASH_README",
|
"AFL_NO_CRASH_README", "AFL_NO_FORKSRV", "AFL_NO_UI", "AFL_NO_PYTHON",
|
||||||
"AFL_NO_FORKSRV",
|
"AFL_NO_STARTUP_CALIBRATION", "AFL_NO_WARN_INSTABILITY",
|
||||||
"AFL_NO_UI",
|
"AFL_UNTRACER_FILE", "AFL_LLVM_USE_TRACE_PC", "AFL_MAP_SIZE", "AFL_MAPSIZE",
|
||||||
"AFL_NO_PYTHON",
|
|
||||||
"AFL_NO_STARTUP_CALIBRATION",
|
|
||||||
"AFL_NO_WARN_INSTABILITY",
|
|
||||||
"AFL_UNTRACER_FILE",
|
|
||||||
"AFL_LLVM_USE_TRACE_PC",
|
|
||||||
"AFL_MAP_SIZE",
|
|
||||||
"AFL_MAPSIZE",
|
|
||||||
"AFL_MAX_DET_EXTRAS",
|
"AFL_MAX_DET_EXTRAS",
|
||||||
"AFL_NO_X86", // not really an env but we dont want to warn on it
|
"AFL_NO_X86", // not really an env but we dont want to warn on it
|
||||||
"AFL_NOOPT",
|
"AFL_NOOPT", "AFL_NYX_AUX_SIZE", "AFL_NYX_DISABLE_SNAPSHOT_MODE",
|
||||||
"AFL_NYX_AUX_SIZE",
|
"AFL_NYX_LOG", "AFL_NYX_REUSE_SNAPSHOT", "AFL_PASSTHROUGH", "AFL_PATH",
|
||||||
"AFL_NYX_DISABLE_SNAPSHOT_MODE",
|
"AFL_PERFORMANCE_FILE", "AFL_PERSISTENT_RECORD",
|
||||||
"AFL_NYX_LOG",
|
"AFL_POST_PROCESS_KEEP_ORIGINAL", "AFL_PRELOAD", "AFL_TARGET_ENV",
|
||||||
"AFL_NYX_REUSE_SNAPSHOT",
|
"AFL_PYTHON_MODULE", "AFL_QEMU_CUSTOM_BIN", "AFL_QEMU_COMPCOV",
|
||||||
"AFL_PASSTHROUGH",
|
"AFL_QEMU_COMPCOV_DEBUG", "AFL_QEMU_DEBUG_MAPS", "AFL_QEMU_DISABLE_CACHE",
|
||||||
"AFL_PATH",
|
"AFL_QEMU_DRIVER_NO_HOOK", "AFL_QEMU_FORCE_DFL", "AFL_QEMU_PERSISTENT_ADDR",
|
||||||
"AFL_PERFORMANCE_FILE",
|
"AFL_QEMU_PERSISTENT_CNT", "AFL_QEMU_PERSISTENT_GPR",
|
||||||
"AFL_PERSISTENT_RECORD",
|
"AFL_QEMU_PERSISTENT_HOOK", "AFL_QEMU_PERSISTENT_MEM",
|
||||||
"AFL_POST_PROCESS_KEEP_ORIGINAL",
|
"AFL_QEMU_PERSISTENT_RET", "AFL_QEMU_PERSISTENT_RETADDR_OFFSET",
|
||||||
"AFL_PRELOAD",
|
"AFL_QEMU_PERSISTENT_EXITS", "AFL_QEMU_INST_RANGES",
|
||||||
"AFL_TARGET_ENV",
|
"AFL_QEMU_EXCLUDE_RANGES", "AFL_QEMU_SNAPSHOT", "AFL_QEMU_TRACK_UNSTABLE",
|
||||||
"AFL_PYTHON_MODULE",
|
"AFL_QUIET", "AFL_RANDOM_ALLOC_CANARY", "AFL_REAL_PATH",
|
||||||
"AFL_QEMU_CUSTOM_BIN",
|
"AFL_SHUFFLE_QUEUE", "AFL_SKIP_BIN_CHECK", "AFL_SKIP_CPUFREQ",
|
||||||
"AFL_QEMU_COMPCOV",
|
"AFL_SKIP_CRASHES", "AFL_SKIP_OSSFUZZ", "AFL_STATSD", "AFL_STATSD_HOST",
|
||||||
"AFL_QEMU_COMPCOV_DEBUG",
|
"AFL_STATSD_PORT", "AFL_STATSD_TAGS_FLAVOR", "AFL_SYNC_TIME",
|
||||||
"AFL_QEMU_DEBUG_MAPS",
|
"AFL_TESTCACHE_SIZE", "AFL_TESTCACHE_ENTRIES", "AFL_TMIN_EXACT",
|
||||||
"AFL_QEMU_DISABLE_CACHE",
|
"AFL_TMPDIR", "AFL_TOKEN_FILE", "AFL_TRACE_PC", "AFL_USE_ASAN",
|
||||||
"AFL_QEMU_DRIVER_NO_HOOK",
|
"AFL_USE_MSAN", "AFL_USE_TRACE_PC", "AFL_USE_UBSAN", "AFL_USE_TSAN",
|
||||||
"AFL_QEMU_FORCE_DFL",
|
"AFL_USE_CFISAN", "AFL_USE_LSAN", "AFL_WINE_PATH", "AFL_NO_SNAPSHOT",
|
||||||
"AFL_QEMU_PERSISTENT_ADDR",
|
"AFL_EXPAND_HAVOC_NOW", "AFL_USE_FASAN", "AFL_USE_QASAN",
|
||||||
"AFL_QEMU_PERSISTENT_CNT",
|
"AFL_PRINT_FILENAMES", "AFL_PIZZA_MODE", NULL
|
||||||
"AFL_QEMU_PERSISTENT_GPR",
|
|
||||||
"AFL_QEMU_PERSISTENT_HOOK",
|
|
||||||
"AFL_QEMU_PERSISTENT_MEM",
|
|
||||||
"AFL_QEMU_PERSISTENT_RET",
|
|
||||||
"AFL_QEMU_PERSISTENT_RETADDR_OFFSET",
|
|
||||||
"AFL_QEMU_PERSISTENT_EXITS",
|
|
||||||
"AFL_QEMU_INST_RANGES",
|
|
||||||
"AFL_QEMU_EXCLUDE_RANGES",
|
|
||||||
"AFL_QEMU_SNAPSHOT",
|
|
||||||
"AFL_QEMU_TRACK_UNSTABLE",
|
|
||||||
"AFL_QUIET",
|
|
||||||
"AFL_RANDOM_ALLOC_CANARY",
|
|
||||||
"AFL_REAL_PATH",
|
|
||||||
"AFL_SHUFFLE_QUEUE",
|
|
||||||
"AFL_SKIP_BIN_CHECK",
|
|
||||||
"AFL_SKIP_CPUFREQ",
|
|
||||||
"AFL_SKIP_CRASHES",
|
|
||||||
"AFL_SKIP_OSSFUZZ",
|
|
||||||
"AFL_STATSD",
|
|
||||||
"AFL_STATSD_HOST",
|
|
||||||
"AFL_STATSD_PORT",
|
|
||||||
"AFL_STATSD_TAGS_FLAVOR",
|
|
||||||
"AFL_SYNC_TIME",
|
|
||||||
"AFL_TESTCACHE_SIZE",
|
|
||||||
"AFL_TESTCACHE_ENTRIES",
|
|
||||||
"AFL_TMIN_EXACT",
|
|
||||||
"AFL_TMPDIR",
|
|
||||||
"AFL_TOKEN_FILE",
|
|
||||||
"AFL_TRACE_PC",
|
|
||||||
"AFL_USE_ASAN",
|
|
||||||
"AFL_USE_MSAN",
|
|
||||||
"AFL_USE_TRACE_PC",
|
|
||||||
"AFL_USE_UBSAN",
|
|
||||||
"AFL_USE_TSAN",
|
|
||||||
"AFL_USE_CFISAN",
|
|
||||||
"AFL_USE_LSAN",
|
|
||||||
"AFL_WINE_PATH",
|
|
||||||
"AFL_NO_SNAPSHOT",
|
|
||||||
"AFL_EXPAND_HAVOC_NOW",
|
|
||||||
"AFL_USE_FASAN",
|
|
||||||
"AFL_USE_QASAN",
|
|
||||||
"AFL_PRINT_FILENAMES",
|
|
||||||
"AFL_PIZZA_MODE",
|
|
||||||
NULL
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
Dominik Maier <mail@dmnk.co>>
|
Dominik Maier <mail@dmnk.co>>
|
||||||
|
|
||||||
Copyright 2016, 2017 Google Inc. All rights reserved.
|
Copyright 2016, 2017 Google Inc. All rights reserved.
|
||||||
Copyright 2019-2023 AFLplusplus Project. All rights reserved.
|
Copyright 2019-2024 AFLplusplus Project. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
@ -126,7 +126,8 @@ typedef struct afl_forkserver {
|
|||||||
u8 *out_file, /* File to fuzz, if any */
|
u8 *out_file, /* File to fuzz, if any */
|
||||||
*target_path; /* Path of the target */
|
*target_path; /* Path of the target */
|
||||||
|
|
||||||
FILE *plot_file; /* Gnuplot output file */
|
FILE *plot_file, /* Gnuplot output file */
|
||||||
|
*det_plot_file;
|
||||||
|
|
||||||
/* Note: last_run_timed_out is u32 to send it to the child as 4 byte array */
|
/* Note: last_run_timed_out is u32 to send it to the child as 4 byte array */
|
||||||
u32 last_run_timed_out; /* Traced process timed out? */
|
u32 last_run_timed_out; /* Traced process timed out? */
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
Other code written by Michal Zalewski
|
Other code written by Michal Zalewski
|
||||||
|
|
||||||
Copyright 2016 Google Inc. All rights reserved.
|
Copyright 2016 Google Inc. All rights reserved.
|
||||||
Copyright 2019-2023 AFLplusplus Project. All rights reserved.
|
Copyright 2019-2024 AFLplusplus Project. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
Dominik Maier <mail@dmnk.co>
|
Dominik Maier <mail@dmnk.co>
|
||||||
|
|
||||||
Copyright 2016, 2017 Google Inc. All rights reserved.
|
Copyright 2016, 2017 Google Inc. All rights reserved.
|
||||||
Copyright 2019-2023 AFLplusplus Project. All rights reserved.
|
Copyright 2019-2024 AFLplusplus Project. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
Dominik Maier <mail@dmnk.co>
|
Dominik Maier <mail@dmnk.co>
|
||||||
|
|
||||||
Copyright 2016, 2017 Google Inc. All rights reserved.
|
Copyright 2016, 2017 Google Inc. All rights reserved.
|
||||||
Copyright 2019-2023 AFLplusplus Project. All rights reserved.
|
Copyright 2019-2024 AFLplusplus Project. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
Dominik Maier <mail@dmnk.co>
|
Dominik Maier <mail@dmnk.co>
|
||||||
|
|
||||||
Copyright 2016, 2017 Google Inc. All rights reserved.
|
Copyright 2016, 2017 Google Inc. All rights reserved.
|
||||||
Copyright 2019-2023 AFLplusplus Project. All rights reserved.
|
Copyright 2019-2024 AFLplusplus Project. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
Dominik Maier <mail@dmnk.co>
|
Dominik Maier <mail@dmnk.co>
|
||||||
|
|
||||||
Copyright 2016, 2017 Google Inc. All rights reserved.
|
Copyright 2016, 2017 Google Inc. All rights reserved.
|
||||||
Copyright 2019-2023 AFLplusplus Project. All rights reserved.
|
Copyright 2019-2024 AFLplusplus Project. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* xxHash - Extremely Fast Hash algorithm
|
* xxHash - Extremely Fast Hash algorithm
|
||||||
* Header File
|
* Header File
|
||||||
* Copyright (C) 2012-2023 Yann Collet
|
* Copyright (C) 2012-2024 Yann Collet
|
||||||
*
|
*
|
||||||
* BSD 2-Clause License (https://www.opensource.org/licenses/bsd-license.php)
|
* BSD 2-Clause License (https://www.opensource.org/licenses/bsd-license.php)
|
||||||
*
|
*
|
||||||
@ -365,7 +365,7 @@ typedef uint32_t XXH32_hash_t;
|
|||||||
(defined(__cplusplus) || \
|
(defined(__cplusplus) || \
|
||||||
(defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */))
|
(defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */))
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
typedef uint32_t XXH32_hash_t;
|
typedef uint32_t XXH32_hash_t;
|
||||||
|
|
||||||
#else
|
#else
|
||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
@ -1082,7 +1082,7 @@ struct XXH64_state_s {
|
|||||||
#include <stdalign.h>
|
#include <stdalign.h>
|
||||||
#define XXH_ALIGN(n) alignas(n)
|
#define XXH_ALIGN(n) alignas(n)
|
||||||
#elif defined(__cplusplus) && (__cplusplus >= 201103L) /* >= C++11 */
|
#elif defined(__cplusplus) && (__cplusplus >= 201103L) /* >= C++11 */
|
||||||
/* In C++ alignas() is a keyword */
|
/* In C++ alignas() is a keyword */
|
||||||
#define XXH_ALIGN(n) alignas(n)
|
#define XXH_ALIGN(n) alignas(n)
|
||||||
#elif defined(__GNUC__)
|
#elif defined(__GNUC__)
|
||||||
#define XXH_ALIGN(n) __attribute__((aligned(n)))
|
#define XXH_ALIGN(n) __attribute__((aligned(n)))
|
||||||
@ -3031,8 +3031,8 @@ XXH64_hashFromCanonical(const XXH64_canonical_t *src) {
|
|||||||
__STDC_VERSION__ >= 199901L /* >= C99 */
|
__STDC_VERSION__ >= 199901L /* >= C99 */
|
||||||
#define XXH_RESTRICT restrict
|
#define XXH_RESTRICT restrict
|
||||||
#else
|
#else
|
||||||
/* Note: it might be useful to define __restrict or __restrict__ for
|
/* Note: it might be useful to define __restrict or __restrict__ for
|
||||||
* some C++ compilers */
|
* some C++ compilers */
|
||||||
#define XXH_RESTRICT /* disable */
|
#define XXH_RESTRICT /* disable */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -3492,8 +3492,8 @@ XXH_FORCE_INLINE xxh_u64x2 XXH_vec_loadu(const void *ptr) {
|
|||||||
#define XXH_vec_mulo vec_mulo
|
#define XXH_vec_mulo vec_mulo
|
||||||
#define XXH_vec_mule vec_mule
|
#define XXH_vec_mule vec_mule
|
||||||
#elif defined(__clang__) && XXH_HAS_BUILTIN(__builtin_altivec_vmuleuw)
|
#elif defined(__clang__) && XXH_HAS_BUILTIN(__builtin_altivec_vmuleuw)
|
||||||
/* Clang has a better way to control this, we can just use the builtin
|
/* Clang has a better way to control this, we can just use the builtin
|
||||||
* which doesn't swap. */
|
* which doesn't swap. */
|
||||||
#define XXH_vec_mulo __builtin_altivec_vmulouw
|
#define XXH_vec_mulo __builtin_altivec_vmulouw
|
||||||
#define XXH_vec_mule __builtin_altivec_vmuleuw
|
#define XXH_vec_mule __builtin_altivec_vmuleuw
|
||||||
#else
|
#else
|
||||||
@ -3604,15 +3604,15 @@ XXH_FORCE_INLINE xxh_u64 XXH_mult32to64(xxh_u64 x, xxh_u64 y) {
|
|||||||
#include <intrin.h>
|
#include <intrin.h>
|
||||||
#define XXH_mult32to64(x, y) __emulu((unsigned)(x), (unsigned)(y))
|
#define XXH_mult32to64(x, y) __emulu((unsigned)(x), (unsigned)(y))
|
||||||
#else
|
#else
|
||||||
/*
|
/*
|
||||||
* Downcast + upcast is usually better than masking on older compilers
|
* Downcast + upcast is usually better than masking on older compilers
|
||||||
* like GCC 4.2 (especially 32-bit ones), all without affecting newer
|
* like GCC 4.2 (especially 32-bit ones), all without affecting newer
|
||||||
* compilers.
|
* compilers.
|
||||||
*
|
*
|
||||||
* The other method, (x & 0xFFFFFFFF) * (y & 0xFFFFFFFF), will AND both
|
* The other method, (x & 0xFFFFFFFF) * (y & 0xFFFFFFFF), will AND both
|
||||||
* operands and perform a full 64x64 multiply -- entirely redundant on
|
* operands and perform a full 64x64 multiply -- entirely redundant on
|
||||||
* 32-bit.
|
* 32-bit.
|
||||||
*/
|
*/
|
||||||
#define XXH_mult32to64(x, y) \
|
#define XXH_mult32to64(x, y) \
|
||||||
((xxh_u64)(xxh_u32)(x) * (xxh_u64)(xxh_u32)(y))
|
((xxh_u64)(xxh_u32)(x) * (xxh_u64)(xxh_u32)(y))
|
||||||
#endif
|
#endif
|
||||||
|
7
injections.dic
Normal file
7
injections.dic
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
"1'\" OR \"1\"=\"1"
|
||||||
|
"1\"' OR '1'='1"
|
||||||
|
"'\"><FUZZ"
|
||||||
|
"*)(FUZZ=*))(|"
|
||||||
|
"\";FUZZ;\""
|
||||||
|
"';FUZZ;'"
|
||||||
|
"$(FUZZ)"
|
48
instrumentation/README.injections.md
Normal file
48
instrumentation/README.injections.md
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
# Injection fuzzing
|
||||||
|
|
||||||
|
Coverage guided fuzzing so far is only able to detect crashes, so usually
|
||||||
|
memory corruption issues, or - if implemented by hand in the harness -
|
||||||
|
invariants.
|
||||||
|
|
||||||
|
This is a proof-of-concept implementation to additionally hunt for injection
|
||||||
|
vulnerabilities.
|
||||||
|
It works by instrumenting calls to specific functions and parsing the
|
||||||
|
query parameter for a specific unescaped dictionary string, and if detected,
|
||||||
|
crashes the target.
|
||||||
|
|
||||||
|
This has a very low false positive rate.
|
||||||
|
But obviously this can only find injection vulnerailities that are suspectible
|
||||||
|
to this specific (but most common) issue. Hence in a rare kind of injection
|
||||||
|
vulnerability this won't find the bug - and be a false negative.
|
||||||
|
But this can be tweaked by the user - see the HOW TO MODIFY section below.
|
||||||
|
|
||||||
|
## How to use
|
||||||
|
|
||||||
|
Set one or more of the following environment variables for **compiling**
|
||||||
|
the target and - *this is important* - when **fuzzing** the target:
|
||||||
|
|
||||||
|
- `AFL_LLVM_INJECTIONS_SQL`
|
||||||
|
- `AFL_LLVM_INJECTIONS_LDAP`
|
||||||
|
- `AFL_LLVM_INJECTIONS_XSS`
|
||||||
|
|
||||||
|
Alternatively you can set `AFL_LLVM_INJECTIONS_ALL` to enable all.
|
||||||
|
|
||||||
|
## How to modify
|
||||||
|
|
||||||
|
If you want to add more fuctions to check for e.g. SQL injections:
|
||||||
|
Add these to `instrumentation/injection-pass.cc` and recompile.
|
||||||
|
|
||||||
|
If you want to test for more injection inputs:
|
||||||
|
Add the dictionary tokens to `src/afl-fuzz.c` and the check for them to
|
||||||
|
`instrumentation/afl-compiler-rt.o.c`.
|
||||||
|
|
||||||
|
If you want to add new injection targets:
|
||||||
|
You will have to edit all three files.
|
||||||
|
|
||||||
|
Just search for:
|
||||||
|
```
|
||||||
|
// Marker: ADD_TO_INJECTIONS
|
||||||
|
```
|
||||||
|
in the files to see where this needs to be added.
|
||||||
|
|
||||||
|
**NOTE:** pull requests to improve this feature are highly welcome :-)
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
## TL;DR:
|
## TL;DR:
|
||||||
|
|
||||||
This version requires a LLVM 11 or newer.
|
This version requires a LLVM 12 or newer.
|
||||||
|
|
||||||
1. Use afl-clang-lto/afl-clang-lto++ because the resulting binaries run
|
1. Use afl-clang-lto/afl-clang-lto++ because the resulting binaries run
|
||||||
slightly faster and give better coverage.
|
slightly faster and give better coverage.
|
||||||
@ -10,7 +10,7 @@ This version requires a LLVM 11 or newer.
|
|||||||
2. You can use it together with COMPCOV, COMPLOG and the instrument file
|
2. You can use it together with COMPCOV, COMPLOG and the instrument file
|
||||||
listing features.
|
listing features.
|
||||||
|
|
||||||
3. It only works with LLVM 11 or newer.
|
3. It only works with LLVM 12 or newer.
|
||||||
|
|
||||||
4. AUTODICTIONARY feature (see below)
|
4. AUTODICTIONARY feature (see below)
|
||||||
|
|
||||||
@ -60,7 +60,7 @@ AUTODICTIONARY: 11 strings found
|
|||||||
[+] Instrumented 12071 locations with no collisions (on average 1046 collisions would be in afl-gcc/afl-clang-fast) (non-hardened mode).
|
[+] Instrumented 12071 locations with no collisions (on average 1046 collisions would be in afl-gcc/afl-clang-fast) (non-hardened mode).
|
||||||
```
|
```
|
||||||
|
|
||||||
## Getting LLVM 11+
|
## Getting LLVM 12+
|
||||||
|
|
||||||
### Installing llvm
|
### Installing llvm
|
||||||
|
|
||||||
@ -73,7 +73,7 @@ chmod +x llvm.sh
|
|||||||
sudo ./llvm.sh 15 all
|
sudo ./llvm.sh 15 all
|
||||||
```
|
```
|
||||||
|
|
||||||
LLVM 11 to 16 should be available in all current Linux repositories.
|
LLVM 12 to 18 should be available in all current Linux repositories.
|
||||||
|
|
||||||
## How to build afl-clang-lto
|
## How to build afl-clang-lto
|
||||||
|
|
||||||
@ -277,7 +277,7 @@ AS=llvm-as ...
|
|||||||
afl-clang-lto is still work in progress.
|
afl-clang-lto is still work in progress.
|
||||||
|
|
||||||
Known issues:
|
Known issues:
|
||||||
* Anything that LLVM 11+ cannot compile, afl-clang-lto cannot compile either -
|
* Anything that LLVM 12+ cannot compile, afl-clang-lto cannot compile either -
|
||||||
obviously.
|
obviously.
|
||||||
* Anything that does not compile with LTO, afl-clang-lto cannot compile either -
|
* Anything that does not compile with LTO, afl-clang-lto cannot compile either -
|
||||||
obviously.
|
obviously.
|
||||||
@ -319,7 +319,7 @@ Still more problems came up though as this only works without bugs from LLVM 9
|
|||||||
onwards, and with high optimization the link optimization ruins the instrumented
|
onwards, and with high optimization the link optimization ruins the instrumented
|
||||||
control flow graph.
|
control flow graph.
|
||||||
|
|
||||||
This is all now fixed with LLVM 11+. The llvm's own linker is now able to load
|
This is all now fixed with LLVM 12+. The llvm's own linker is now able to load
|
||||||
passes and this bypasses all problems we had.
|
passes and this bypasses all problems we had.
|
||||||
|
|
||||||
Happy end :)
|
Happy end :)
|
||||||
|
@ -692,33 +692,37 @@ bool ModuleSanitizerCoverageLTO::instrumentModule(
|
|||||||
* prototype */
|
* prototype */
|
||||||
FunctionType *FT = Callee->getFunctionType();
|
FunctionType *FT = Callee->getFunctionType();
|
||||||
|
|
||||||
isStrcmp &= FT->getNumParams() == 2 &&
|
isStrcmp &=
|
||||||
FT->getReturnType()->isIntegerTy(32) &&
|
FT->getNumParams() == 2 &&
|
||||||
FT->getParamType(0) == FT->getParamType(1) &&
|
FT->getReturnType()->isIntegerTy(32) &&
|
||||||
FT->getParamType(0) ==
|
FT->getParamType(0) == FT->getParamType(1) &&
|
||||||
IntegerType::getInt8PtrTy(M.getContext());
|
FT->getParamType(0) ==
|
||||||
isStrcasecmp &= FT->getNumParams() == 2 &&
|
IntegerType::getInt8Ty(M.getContext())->getPointerTo(0);
|
||||||
FT->getReturnType()->isIntegerTy(32) &&
|
isStrcasecmp &=
|
||||||
FT->getParamType(0) == FT->getParamType(1) &&
|
FT->getNumParams() == 2 &&
|
||||||
FT->getParamType(0) ==
|
FT->getReturnType()->isIntegerTy(32) &&
|
||||||
IntegerType::getInt8PtrTy(M.getContext());
|
FT->getParamType(0) == FT->getParamType(1) &&
|
||||||
|
FT->getParamType(0) ==
|
||||||
|
IntegerType::getInt8Ty(M.getContext())->getPointerTo(0);
|
||||||
isMemcmp &= FT->getNumParams() == 3 &&
|
isMemcmp &= FT->getNumParams() == 3 &&
|
||||||
FT->getReturnType()->isIntegerTy(32) &&
|
FT->getReturnType()->isIntegerTy(32) &&
|
||||||
FT->getParamType(0)->isPointerTy() &&
|
FT->getParamType(0)->isPointerTy() &&
|
||||||
FT->getParamType(1)->isPointerTy() &&
|
FT->getParamType(1)->isPointerTy() &&
|
||||||
FT->getParamType(2)->isIntegerTy();
|
FT->getParamType(2)->isIntegerTy();
|
||||||
isStrncmp &= FT->getNumParams() == 3 &&
|
isStrncmp &=
|
||||||
FT->getReturnType()->isIntegerTy(32) &&
|
FT->getNumParams() == 3 &&
|
||||||
FT->getParamType(0) == FT->getParamType(1) &&
|
FT->getReturnType()->isIntegerTy(32) &&
|
||||||
FT->getParamType(0) ==
|
FT->getParamType(0) == FT->getParamType(1) &&
|
||||||
IntegerType::getInt8PtrTy(M.getContext()) &&
|
FT->getParamType(0) ==
|
||||||
FT->getParamType(2)->isIntegerTy();
|
IntegerType::getInt8Ty(M.getContext())->getPointerTo(0) &&
|
||||||
isStrncasecmp &= FT->getNumParams() == 3 &&
|
FT->getParamType(2)->isIntegerTy();
|
||||||
FT->getReturnType()->isIntegerTy(32) &&
|
isStrncasecmp &=
|
||||||
FT->getParamType(0) == FT->getParamType(1) &&
|
FT->getNumParams() == 3 &&
|
||||||
FT->getParamType(0) ==
|
FT->getReturnType()->isIntegerTy(32) &&
|
||||||
IntegerType::getInt8PtrTy(M.getContext()) &&
|
FT->getParamType(0) == FT->getParamType(1) &&
|
||||||
FT->getParamType(2)->isIntegerTy();
|
FT->getParamType(0) ==
|
||||||
|
IntegerType::getInt8Ty(M.getContext())->getPointerTo(0) &&
|
||||||
|
FT->getParamType(2)->isIntegerTy();
|
||||||
isStdString &= FT->getNumParams() >= 2 &&
|
isStdString &= FT->getNumParams() >= 2 &&
|
||||||
FT->getParamType(0)->isPointerTy() &&
|
FT->getParamType(0)->isPointerTy() &&
|
||||||
FT->getParamType(1)->isPointerTy();
|
FT->getParamType(1)->isPointerTy();
|
||||||
@ -1241,7 +1245,11 @@ void ModuleSanitizerCoverageLTO::instrumentFunction(
|
|||||||
if (F.empty()) return;
|
if (F.empty()) return;
|
||||||
if (F.getName().find(".module_ctor") != std::string::npos)
|
if (F.getName().find(".module_ctor") != std::string::npos)
|
||||||
return; // Should not instrument sanitizer init functions.
|
return; // Should not instrument sanitizer init functions.
|
||||||
|
#if LLVM_VERSION_MAJOR >= 18
|
||||||
|
if (F.getName().starts_with("__sanitizer_"))
|
||||||
|
#else
|
||||||
if (F.getName().startswith("__sanitizer_"))
|
if (F.getName().startswith("__sanitizer_"))
|
||||||
|
#endif
|
||||||
return; // Don't instrument __sanitizer_* callbacks.
|
return; // Don't instrument __sanitizer_* callbacks.
|
||||||
// Don't touch available_externally functions, their actual body is elsewhere.
|
// Don't touch available_externally functions, their actual body is elsewhere.
|
||||||
if (F.getLinkage() == GlobalValue::AvailableExternallyLinkage) return;
|
if (F.getLinkage() == GlobalValue::AvailableExternallyLinkage) return;
|
||||||
@ -1493,7 +1501,7 @@ GlobalVariable *ModuleSanitizerCoverageLTO::CreateFunctionLocalArrayInSection(
|
|||||||
Array->setComdat(Comdat);
|
Array->setComdat(Comdat);
|
||||||
#endif
|
#endif
|
||||||
Array->setSection(getSectionName(Section));
|
Array->setSection(getSectionName(Section));
|
||||||
Array->setAlignment(Align(DL->getTypeStoreSize(Ty).getFixedSize()));
|
Array->setAlignment(Align(DL->getTypeStoreSize(Ty).getFixedValue()));
|
||||||
GlobalsToAppendToUsed.push_back(Array);
|
GlobalsToAppendToUsed.push_back(Array);
|
||||||
GlobalsToAppendToCompilerUsed.push_back(Array);
|
GlobalsToAppendToCompilerUsed.push_back(Array);
|
||||||
MDNode *MD = MDNode::get(F.getContext(), ValueAsMetadata::get(&F));
|
MDNode *MD = MDNode::get(F.getContext(), ValueAsMetadata::get(&F));
|
||||||
|
@ -572,7 +572,11 @@ void ModuleSanitizerCoverageAFL::instrumentFunction(
|
|||||||
if (!isInInstrumentList(&F, FMNAME)) return;
|
if (!isInInstrumentList(&F, FMNAME)) return;
|
||||||
if (F.getName().find(".module_ctor") != std::string::npos)
|
if (F.getName().find(".module_ctor") != std::string::npos)
|
||||||
return; // Should not instrument sanitizer init functions.
|
return; // Should not instrument sanitizer init functions.
|
||||||
|
#if LLVM_VERSION_MAJOR >= 18
|
||||||
|
if (F.getName().starts_with("__sanitizer_"))
|
||||||
|
#else
|
||||||
if (F.getName().startswith("__sanitizer_"))
|
if (F.getName().startswith("__sanitizer_"))
|
||||||
|
#endif
|
||||||
return; // Don't instrument __sanitizer_* callbacks.
|
return; // Don't instrument __sanitizer_* callbacks.
|
||||||
// Don't touch available_externally functions, their actual body is elewhere.
|
// Don't touch available_externally functions, their actual body is elewhere.
|
||||||
if (F.getLinkage() == GlobalValue::AvailableExternallyLinkage) return;
|
if (F.getLinkage() == GlobalValue::AvailableExternallyLinkage) return;
|
||||||
@ -623,6 +627,13 @@ void ModuleSanitizerCoverageAFL::instrumentFunction(
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (debug) {
|
||||||
|
|
||||||
|
fprintf(stderr, "SanitizerCoveragePCGUARD: instrumenting %s in %s\n",
|
||||||
|
F.getName().str().c_str(), F.getParent()->getName().str().c_str());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
InjectCoverage(F, BlocksToInstrument, IsLeafFunc);
|
InjectCoverage(F, BlocksToInstrument, IsLeafFunc);
|
||||||
// InjectTraceForCmp(F, CmpTraceTargets);
|
// InjectTraceForCmp(F, CmpTraceTargets);
|
||||||
// InjectTraceForSwitch(F, SwitchTraceTargets);
|
// InjectTraceForSwitch(F, SwitchTraceTargets);
|
||||||
@ -948,6 +959,7 @@ bool ModuleSanitizerCoverageAFL::InjectCoverage(
|
|||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
|
|
||||||
|
// fprintf(stderr, "UNHANDLED: %u\n", t->getTypeID());
|
||||||
unhandled++;
|
unhandled++;
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
------------------------------------------------
|
------------------------------------------------
|
||||||
|
|
||||||
Copyright 2015, 2016 Google Inc. All rights reserved.
|
Copyright 2015, 2016 Google Inc. All rights reserved.
|
||||||
Copyright 2019-2023 AFLplusplus Project. All rights reserved.
|
Copyright 2019-2024 AFLplusplus Project. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
@ -22,6 +22,10 @@
|
|||||||
#define __USE_GNU
|
#define __USE_GNU
|
||||||
#endif
|
#endif
|
||||||
#include <dlfcn.h>
|
#include <dlfcn.h>
|
||||||
|
|
||||||
|
__attribute__((weak)) void __sanitizer_symbolize_pc(void *, const char *fmt,
|
||||||
|
char *out_buf,
|
||||||
|
size_t out_buf_size);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef __ANDROID__
|
#ifdef __ANDROID__
|
||||||
@ -48,7 +52,7 @@
|
|||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|
||||||
#include <sys/mman.h>
|
#include <sys/mman.h>
|
||||||
#ifndef __HAIKU__
|
#if !defined(__HAIKU__) && !defined(__OpenBSD__)
|
||||||
#include <sys/syscall.h>
|
#include <sys/syscall.h>
|
||||||
#endif
|
#endif
|
||||||
#ifndef USEMMAP
|
#ifndef USEMMAP
|
||||||
@ -92,6 +96,8 @@ extern ssize_t _kern_write(int fd, off_t pos, const void *buffer,
|
|||||||
size_t bufferSize);
|
size_t bufferSize);
|
||||||
#endif // HAIKU
|
#endif // HAIKU
|
||||||
|
|
||||||
|
char *strcasestr(const char *haystack, const char *needle);
|
||||||
|
|
||||||
static u8 __afl_area_initial[MAP_INITIAL_SIZE];
|
static u8 __afl_area_initial[MAP_INITIAL_SIZE];
|
||||||
static u8 *__afl_area_ptr_dummy = __afl_area_initial;
|
static u8 *__afl_area_ptr_dummy = __afl_area_initial;
|
||||||
static u8 *__afl_area_ptr_backup = __afl_area_initial;
|
static u8 *__afl_area_ptr_backup = __afl_area_initial;
|
||||||
@ -122,8 +128,8 @@ struct afl_module_info_t {
|
|||||||
uintptr_t base_address;
|
uintptr_t base_address;
|
||||||
|
|
||||||
// PC Guard start/stop
|
// PC Guard start/stop
|
||||||
u32 start;
|
u32 *start;
|
||||||
u32 stop;
|
u32 *stop;
|
||||||
|
|
||||||
// PC Table begin/end
|
// PC Table begin/end
|
||||||
const uintptr_t *pcs_beg;
|
const uintptr_t *pcs_beg;
|
||||||
@ -145,6 +151,18 @@ afl_module_info_t *__afl_module_info = NULL;
|
|||||||
|
|
||||||
u32 __afl_pcmap_size = 0;
|
u32 __afl_pcmap_size = 0;
|
||||||
uintptr_t *__afl_pcmap_ptr = NULL;
|
uintptr_t *__afl_pcmap_ptr = NULL;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
|
||||||
|
uintptr_t start;
|
||||||
|
u32 len;
|
||||||
|
|
||||||
|
} FilterPCEntry;
|
||||||
|
|
||||||
|
u32 __afl_filter_pcs_size = 0;
|
||||||
|
FilterPCEntry *__afl_filter_pcs = NULL;
|
||||||
|
u8 *__afl_filter_pcs_module = NULL;
|
||||||
|
|
||||||
#endif // __AFL_CODE_COVERAGE
|
#endif // __AFL_CODE_COVERAGE
|
||||||
|
|
||||||
/* 1 if we are running in afl, and the forkserver was started, else 0 */
|
/* 1 if we are running in afl, and the forkserver was started, else 0 */
|
||||||
@ -183,7 +201,7 @@ static u8 _is_sancov;
|
|||||||
|
|
||||||
/* Debug? */
|
/* Debug? */
|
||||||
|
|
||||||
static u32 __afl_debug;
|
/*static*/ u32 __afl_debug;
|
||||||
|
|
||||||
/* Already initialized markers */
|
/* Already initialized markers */
|
||||||
|
|
||||||
@ -1585,15 +1603,116 @@ void __sanitizer_cov_trace_pc_guard(uint32_t *guard) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef __AFL_CODE_COVERAGE
|
#ifdef __AFL_CODE_COVERAGE
|
||||||
void __sanitizer_cov_pcs_init(const uintptr_t *pcs_beg,
|
void afl_read_pc_filter_file(const char *filter_file) {
|
||||||
const uintptr_t *pcs_end) {
|
|
||||||
|
|
||||||
if (__afl_debug) {
|
FILE *file;
|
||||||
|
char ch;
|
||||||
|
|
||||||
fprintf(stderr, "DEBUG: __sanitizer_cov_pcs_init called\n");
|
file = fopen(filter_file, "r");
|
||||||
|
if (file == NULL) {
|
||||||
|
|
||||||
|
perror("Error opening file");
|
||||||
|
return;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Check how many PCs we expect to read
|
||||||
|
while ((ch = fgetc(file)) != EOF) {
|
||||||
|
|
||||||
|
if (ch == '\n') { __afl_filter_pcs_size++; }
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// Rewind to actually read the PCs
|
||||||
|
fseek(file, 0, SEEK_SET);
|
||||||
|
|
||||||
|
__afl_filter_pcs = malloc(__afl_filter_pcs_size * sizeof(FilterPCEntry));
|
||||||
|
if (!__afl_filter_pcs) {
|
||||||
|
|
||||||
|
perror("Error allocating PC array");
|
||||||
|
return;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
for (size_t i = 0; i < __afl_filter_pcs_size; i++) {
|
||||||
|
|
||||||
|
fscanf(file, "%lx", &(__afl_filter_pcs[i].start));
|
||||||
|
ch = fgetc(file); // Read tab
|
||||||
|
fscanf(file, "%u", &(__afl_filter_pcs[i].len));
|
||||||
|
ch = fgetc(file); // Read tab
|
||||||
|
|
||||||
|
if (!__afl_filter_pcs_module) {
|
||||||
|
|
||||||
|
// Read the module name and store it.
|
||||||
|
// TODO: We only support one module here right now although
|
||||||
|
// there is technically no reason to support multiple modules
|
||||||
|
// in one go.
|
||||||
|
size_t max_module_len = 255;
|
||||||
|
size_t i = 0;
|
||||||
|
__afl_filter_pcs_module = malloc(max_module_len);
|
||||||
|
while (i < max_module_len - 1 &&
|
||||||
|
(__afl_filter_pcs_module[i] = fgetc(file)) != '\t') {
|
||||||
|
|
||||||
|
++i;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
__afl_filter_pcs_module[i] = '\0';
|
||||||
|
fprintf(stderr, "DEBUGXXX: Read module name %s\n",
|
||||||
|
__afl_filter_pcs_module);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
while ((ch = fgetc(file)) != '\n' && ch != EOF)
|
||||||
|
;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
fclose(file);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
u32 locate_in_pcs(uintptr_t needle, u32 *index) {
|
||||||
|
|
||||||
|
size_t lower_bound = 0;
|
||||||
|
size_t upper_bound = __afl_filter_pcs_size - 1;
|
||||||
|
|
||||||
|
while (lower_bound < __afl_filter_pcs_size && lower_bound <= upper_bound) {
|
||||||
|
|
||||||
|
size_t current_index = lower_bound + (upper_bound - lower_bound) / 2;
|
||||||
|
|
||||||
|
if (__afl_filter_pcs[current_index].start <= needle) {
|
||||||
|
|
||||||
|
if (__afl_filter_pcs[current_index].start +
|
||||||
|
__afl_filter_pcs[current_index].len >
|
||||||
|
needle) {
|
||||||
|
|
||||||
|
// Hit
|
||||||
|
*index = current_index;
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
lower_bound = current_index + 1;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
if (!current_index) { break; }
|
||||||
|
upper_bound = current_index - 1;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void __sanitizer_cov_pcs_init(const uintptr_t *pcs_beg,
|
||||||
|
const uintptr_t *pcs_end) {
|
||||||
|
|
||||||
// If for whatever reason, we cannot get dlinfo here, then pc_guard_init also
|
// If for whatever reason, we cannot get dlinfo here, then pc_guard_init also
|
||||||
// couldn't get it and we'd end up attributing to the wrong module.
|
// couldn't get it and we'd end up attributing to the wrong module.
|
||||||
Dl_info dlinfo;
|
Dl_info dlinfo;
|
||||||
@ -1606,6 +1725,16 @@ void __sanitizer_cov_pcs_init(const uintptr_t *pcs_beg,
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (__afl_debug) {
|
||||||
|
|
||||||
|
fprintf(
|
||||||
|
stderr,
|
||||||
|
"DEBUG: (%u) __sanitizer_cov_pcs_init called for module %s with %ld "
|
||||||
|
"PCs\n",
|
||||||
|
getpid(), dlinfo.dli_fname, pcs_end - pcs_beg);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
afl_module_info_t *last_module_info = __afl_module_info;
|
afl_module_info_t *last_module_info = __afl_module_info;
|
||||||
while (last_module_info && last_module_info->next) {
|
while (last_module_info && last_module_info->next) {
|
||||||
|
|
||||||
@ -1621,34 +1750,78 @@ void __sanitizer_cov_pcs_init(const uintptr_t *pcs_beg,
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (strcmp(dlinfo.dli_fname, last_module_info->name)) {
|
||||||
|
|
||||||
|
// This can happen with modules being loaded after the forkserver
|
||||||
|
// where we decide to not track the module. In that case we must
|
||||||
|
// not track it here either.
|
||||||
|
fprintf(
|
||||||
|
stderr,
|
||||||
|
"WARNING: __sanitizer_cov_pcs_init module info mismatch: %s vs %s\n",
|
||||||
|
dlinfo.dli_fname, last_module_info->name);
|
||||||
|
return;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
last_module_info->pcs_beg = pcs_beg;
|
last_module_info->pcs_beg = pcs_beg;
|
||||||
last_module_info->pcs_end = pcs_end;
|
last_module_info->pcs_end = pcs_end;
|
||||||
|
|
||||||
|
// This is a direct filter based on symbolizing inside the runtime.
|
||||||
|
// It should only be used with smaller binaries to avoid long startup
|
||||||
|
// times. Currently, this only supports a single token to scan for.
|
||||||
|
const char *pc_filter = getenv("AFL_PC_FILTER");
|
||||||
|
|
||||||
|
// This is a much faster PC filter based on pre-symbolized input data
|
||||||
|
// that is sorted for fast lookup through binary search. This method
|
||||||
|
// of filtering is suitable even for very large binaries.
|
||||||
|
const char *pc_filter_file = getenv("AFL_PC_FILTER_FILE");
|
||||||
|
if (pc_filter_file && !__afl_filter_pcs) {
|
||||||
|
|
||||||
|
afl_read_pc_filter_file(pc_filter_file);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
// Now update the pcmap. If this is the last module coming in, after all
|
// Now update the pcmap. If this is the last module coming in, after all
|
||||||
// pre-loaded code, then this will also map all of our delayed previous
|
// pre-loaded code, then this will also map all of our delayed previous
|
||||||
// modules.
|
// modules.
|
||||||
|
//
|
||||||
if (!__afl_pcmap_ptr) { return; }
|
|
||||||
|
|
||||||
for (afl_module_info_t *mod_info = __afl_module_info; mod_info;
|
for (afl_module_info_t *mod_info = __afl_module_info; mod_info;
|
||||||
mod_info = mod_info->next) {
|
mod_info = mod_info->next) {
|
||||||
|
|
||||||
if (mod_info->mapped) { continue; }
|
if (mod_info->mapped) { continue; }
|
||||||
|
|
||||||
|
if (!mod_info->start) {
|
||||||
|
|
||||||
|
fprintf(stderr,
|
||||||
|
"ERROR: __sanitizer_cov_pcs_init called with mod_info->start == "
|
||||||
|
"NULL (%s)\n",
|
||||||
|
mod_info->name);
|
||||||
|
abort();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
PCTableEntry *start = (PCTableEntry *)(mod_info->pcs_beg);
|
PCTableEntry *start = (PCTableEntry *)(mod_info->pcs_beg);
|
||||||
PCTableEntry *end = (PCTableEntry *)(mod_info->pcs_end);
|
PCTableEntry *end = (PCTableEntry *)(mod_info->pcs_end);
|
||||||
|
|
||||||
|
if (!*mod_info->stop) { continue; }
|
||||||
|
|
||||||
u32 in_module_index = 0;
|
u32 in_module_index = 0;
|
||||||
|
|
||||||
while (start < end) {
|
while (start < end) {
|
||||||
|
|
||||||
if (mod_info->start + in_module_index >= __afl_map_size) {
|
if (*mod_info->start + in_module_index >= __afl_map_size) {
|
||||||
|
|
||||||
fprintf(stderr, "ERROR: __sanitizer_cov_pcs_init out of bounds?!\n");
|
fprintf(stderr,
|
||||||
|
"ERROR: __sanitizer_cov_pcs_init out of bounds?! Start: %u "
|
||||||
|
"Stop: %u Map Size: %u (%s)\n",
|
||||||
|
*mod_info->start, *mod_info->stop, __afl_map_size,
|
||||||
|
mod_info->name);
|
||||||
abort();
|
abort();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
u32 orig_start_index = *mod_info->start;
|
||||||
|
|
||||||
uintptr_t PC = start->PC;
|
uintptr_t PC = start->PC;
|
||||||
|
|
||||||
// This is what `GetPreviousInstructionPc` in sanitizer runtime does
|
// This is what `GetPreviousInstructionPc` in sanitizer runtime does
|
||||||
@ -1658,7 +1831,58 @@ void __sanitizer_cov_pcs_init(const uintptr_t *pcs_beg,
|
|||||||
// Calculate relative offset in module
|
// Calculate relative offset in module
|
||||||
PC = PC - mod_info->base_address;
|
PC = PC - mod_info->base_address;
|
||||||
|
|
||||||
__afl_pcmap_ptr[mod_info->start + in_module_index] = PC;
|
if (__afl_pcmap_ptr) {
|
||||||
|
|
||||||
|
__afl_pcmap_ptr[orig_start_index + in_module_index] = PC;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pc_filter) {
|
||||||
|
|
||||||
|
char PcDescr[1024];
|
||||||
|
// This function is a part of the sanitizer run-time.
|
||||||
|
// To use it, link with AddressSanitizer or other sanitizer.
|
||||||
|
__sanitizer_symbolize_pc((void *)start->PC, "%p %F %L", PcDescr,
|
||||||
|
sizeof(PcDescr));
|
||||||
|
|
||||||
|
if (strstr(PcDescr, pc_filter)) {
|
||||||
|
|
||||||
|
if (__afl_debug)
|
||||||
|
fprintf(
|
||||||
|
stderr,
|
||||||
|
"DEBUG: Selective instrumentation match: %s (PC %p Index %u)\n",
|
||||||
|
PcDescr, (void *)start->PC,
|
||||||
|
*(mod_info->start + in_module_index));
|
||||||
|
// No change to guard needed
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
// Null out the guard to disable this edge
|
||||||
|
*(mod_info->start + in_module_index) = 0;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (__afl_filter_pcs && strstr(mod_info->name, __afl_filter_pcs_module)) {
|
||||||
|
|
||||||
|
u32 result_index;
|
||||||
|
if (locate_in_pcs(PC, &result_index)) {
|
||||||
|
|
||||||
|
if (__afl_debug)
|
||||||
|
fprintf(stderr,
|
||||||
|
"DEBUG: Selective instrumentation match: (PC %lx File "
|
||||||
|
"Index %u PC Index %u)\n",
|
||||||
|
PC, result_index, in_module_index);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
// Null out the guard to disable this edge
|
||||||
|
*(mod_info->start + in_module_index) = 0;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
start++;
|
start++;
|
||||||
in_module_index++;
|
in_module_index++;
|
||||||
@ -1669,8 +1893,10 @@ void __sanitizer_cov_pcs_init(const uintptr_t *pcs_beg,
|
|||||||
|
|
||||||
if (__afl_debug) {
|
if (__afl_debug) {
|
||||||
|
|
||||||
fprintf(stderr, "DEBUG: __sanitizer_cov_pcs_init initialized %u PCs\n",
|
fprintf(stderr,
|
||||||
in_module_index);
|
"DEBUG: __sanitizer_cov_pcs_init successfully mapped %s with %u "
|
||||||
|
"PCs\n",
|
||||||
|
mod_info->name, in_module_index);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1704,9 +1930,9 @@ void __sanitizer_cov_trace_pc_guard_init(uint32_t *start, uint32_t *stop) {
|
|||||||
fprintf(
|
fprintf(
|
||||||
stderr,
|
stderr,
|
||||||
"DEBUG: Running __sanitizer_cov_trace_pc_guard_init: %p-%p (%lu edges) "
|
"DEBUG: Running __sanitizer_cov_trace_pc_guard_init: %p-%p (%lu edges) "
|
||||||
"after_fs=%u\n",
|
"after_fs=%u *start=%u\n",
|
||||||
start, stop, (unsigned long)(stop - start),
|
start, stop, (unsigned long)(stop - start),
|
||||||
__afl_already_initialized_forkserver);
|
__afl_already_initialized_forkserver, *start);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1738,8 +1964,8 @@ void __sanitizer_cov_trace_pc_guard_init(uint32_t *start, uint32_t *stop) {
|
|||||||
mod_info->id = last_module_info ? last_module_info->id + 1 : 0;
|
mod_info->id = last_module_info ? last_module_info->id + 1 : 0;
|
||||||
mod_info->name = strdup(dlinfo.dli_fname);
|
mod_info->name = strdup(dlinfo.dli_fname);
|
||||||
mod_info->base_address = (uintptr_t)dlinfo.dli_fbase;
|
mod_info->base_address = (uintptr_t)dlinfo.dli_fbase;
|
||||||
mod_info->start = 0;
|
mod_info->start = NULL;
|
||||||
mod_info->stop = 0;
|
mod_info->stop = NULL;
|
||||||
mod_info->pcs_beg = NULL;
|
mod_info->pcs_beg = NULL;
|
||||||
mod_info->pcs_end = NULL;
|
mod_info->pcs_end = NULL;
|
||||||
mod_info->mapped = 0;
|
mod_info->mapped = 0;
|
||||||
@ -1755,8 +1981,12 @@ void __sanitizer_cov_trace_pc_guard_init(uint32_t *start, uint32_t *stop) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf(stderr, "[pcmap] Module: %s Base Address: %p\n", dlinfo.dli_fname,
|
if (__afl_debug) {
|
||||||
dlinfo.dli_fbase);
|
|
||||||
|
fprintf(stderr, "[pcmap] Module: %s Base Address: %p\n",
|
||||||
|
dlinfo.dli_fname, dlinfo.dli_fbase);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1859,12 +2089,17 @@ void __sanitizer_cov_trace_pc_guard_init(uint32_t *start, uint32_t *stop) {
|
|||||||
#ifdef __AFL_CODE_COVERAGE
|
#ifdef __AFL_CODE_COVERAGE
|
||||||
if (mod_info) {
|
if (mod_info) {
|
||||||
|
|
||||||
mod_info->start = *orig_start;
|
if (!mod_info->start) {
|
||||||
mod_info->stop = *(stop - 1);
|
|
||||||
|
mod_info->start = orig_start;
|
||||||
|
mod_info->stop = stop - 1;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
if (__afl_debug) {
|
if (__afl_debug) {
|
||||||
|
|
||||||
fprintf(stderr, "DEBUG: [pcmap] Start Index: %u Stop Index: %u\n",
|
fprintf(stderr, "DEBUG: [pcmap] Start Index: %u Stop Index: %u\n",
|
||||||
mod_info->start, mod_info->stop);
|
*(mod_info->start), *(mod_info->stop));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1910,6 +2145,10 @@ void __cmplog_ins_hook1(uint8_t arg1, uint8_t arg2, uint8_t attr) {
|
|||||||
// fprintf(stderr, "hook1 arg0=%02x arg1=%02x attr=%u\n",
|
// fprintf(stderr, "hook1 arg0=%02x arg1=%02x attr=%u\n",
|
||||||
// (u8) arg1, (u8) arg2, attr);
|
// (u8) arg1, (u8) arg2, attr);
|
||||||
|
|
||||||
|
return;
|
||||||
|
|
||||||
|
/*
|
||||||
|
|
||||||
if (unlikely(!__afl_cmp_map || arg1 == arg2)) return;
|
if (unlikely(!__afl_cmp_map || arg1 == arg2)) return;
|
||||||
|
|
||||||
uintptr_t k = (uintptr_t)__builtin_return_address(0);
|
uintptr_t k = (uintptr_t)__builtin_return_address(0);
|
||||||
@ -1936,6 +2175,8 @@ void __cmplog_ins_hook1(uint8_t arg1, uint8_t arg2, uint8_t attr) {
|
|||||||
__afl_cmp_map->log[k][hits].v0 = arg1;
|
__afl_cmp_map->log[k][hits].v0 = arg1;
|
||||||
__afl_cmp_map->log[k][hits].v1 = arg2;
|
__afl_cmp_map->log[k][hits].v1 = arg2;
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void __cmplog_ins_hook2(uint16_t arg1, uint16_t arg2, uint8_t attr) {
|
void __cmplog_ins_hook2(uint16_t arg1, uint16_t arg2, uint8_t attr) {
|
||||||
@ -2142,13 +2383,13 @@ void __cmplog_ins_hook16(uint128_t arg1, uint128_t arg2, uint8_t attr) {
|
|||||||
|
|
||||||
void __sanitizer_cov_trace_cmp1(uint8_t arg1, uint8_t arg2) {
|
void __sanitizer_cov_trace_cmp1(uint8_t arg1, uint8_t arg2) {
|
||||||
|
|
||||||
__cmplog_ins_hook1(arg1, arg2, 0);
|
//__cmplog_ins_hook1(arg1, arg2, 0);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void __sanitizer_cov_trace_const_cmp1(uint8_t arg1, uint8_t arg2) {
|
void __sanitizer_cov_trace_const_cmp1(uint8_t arg1, uint8_t arg2) {
|
||||||
|
|
||||||
__cmplog_ins_hook1(arg1, arg2, 0);
|
//__cmplog_ins_hook1(arg1, arg2, 0);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2257,11 +2498,13 @@ static int area_is_valid(void *ptr, size_t len) {
|
|||||||
|
|
||||||
if (unlikely(!ptr || __asan_region_is_poisoned(ptr, len))) { return 0; }
|
if (unlikely(!ptr || __asan_region_is_poisoned(ptr, len))) { return 0; }
|
||||||
|
|
||||||
#ifndef __HAIKU__
|
#ifdef __HAIKU__
|
||||||
long r = syscall(SYS_write, __afl_dummy_fd[1], ptr, len);
|
|
||||||
#else
|
|
||||||
long r = _kern_write(__afl_dummy_fd[1], -1, ptr, len);
|
long r = _kern_write(__afl_dummy_fd[1], -1, ptr, len);
|
||||||
#endif // HAIKU
|
#elif defined(__OpenBSD__)
|
||||||
|
long r = write(__afl_dummy_fd[1], ptr, len);
|
||||||
|
#else
|
||||||
|
long r = syscall(SYS_write, __afl_dummy_fd[1], ptr, len);
|
||||||
|
#endif // HAIKU, OPENBSD
|
||||||
|
|
||||||
if (r <= 0 || r > len) return 0;
|
if (r <= 0 || r > len) return 0;
|
||||||
|
|
||||||
@ -2662,5 +2905,52 @@ void __afl_set_persistent_mode(u8 mode) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Marker: ADD_TO_INJECTIONS
|
||||||
|
|
||||||
|
void __afl_injection_sql(u8 *buf) {
|
||||||
|
|
||||||
|
if (likely(buf)) {
|
||||||
|
|
||||||
|
if (unlikely(strstr((char *)buf, "'\"\"'"))) {
|
||||||
|
|
||||||
|
fprintf(stderr, "ALERT: Detected SQL injection in query: %s\n", buf);
|
||||||
|
abort();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void __afl_injection_ldap(u8 *buf) {
|
||||||
|
|
||||||
|
if (likely(buf)) {
|
||||||
|
|
||||||
|
if (unlikely(strstr((char *)buf, "*)(1=*))(|"))) {
|
||||||
|
|
||||||
|
fprintf(stderr, "ALERT: Detected LDAP injection in query: %s\n", buf);
|
||||||
|
abort();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void __afl_injection_xss(u8 *buf) {
|
||||||
|
|
||||||
|
if (likely(buf)) {
|
||||||
|
|
||||||
|
if (unlikely(strstr((char *)buf, "1\"><\""))) {
|
||||||
|
|
||||||
|
fprintf(stderr, "ALERT: Detected XSS injection in content: %s\n", buf);
|
||||||
|
abort();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
#undef write_error
|
#undef write_error
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
Copyright 2014-2019 Free Software Foundation, Inc
|
Copyright 2014-2019 Free Software Foundation, Inc
|
||||||
Copyright 2015, 2016 Google Inc. All rights reserved.
|
Copyright 2015, 2016 Google Inc. All rights reserved.
|
||||||
Copyright 2019-2020 AFLplusplus Project. All rights reserved.
|
Copyright 2019-2020 AFLplusplus Project. All rights reserved.
|
||||||
Copyright 2019-2023 AdaCore
|
Copyright 2019-2024 AdaCore
|
||||||
|
|
||||||
Written by Alexandre Oliva <oliva@adacore.com>, based on the AFL++
|
Written by Alexandre Oliva <oliva@adacore.com>, based on the AFL++
|
||||||
LLVM CmpLog pass by Andrea Fioraldi <andreafioraldi@gmail.com>, and
|
LLVM CmpLog pass by Andrea Fioraldi <andreafioraldi@gmail.com>, and
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
Copyright 2014-2019 Free Software Foundation, Inc
|
Copyright 2014-2019 Free Software Foundation, Inc
|
||||||
Copyright 2015, 2016 Google Inc. All rights reserved.
|
Copyright 2015, 2016 Google Inc. All rights reserved.
|
||||||
Copyright 2019-2020 AFLplusplus Project. All rights reserved.
|
Copyright 2019-2020 AFLplusplus Project. All rights reserved.
|
||||||
Copyright 2019-2023 AdaCore
|
Copyright 2019-2024 AdaCore
|
||||||
|
|
||||||
Written by Alexandre Oliva <oliva@adacore.com>, based on the AFL++
|
Written by Alexandre Oliva <oliva@adacore.com>, based on the AFL++
|
||||||
LLVM CmpLog Routines pass by Andrea Fioraldi
|
LLVM CmpLog Routines pass by Andrea Fioraldi
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
Copyright 2014-2019 Free Software Foundation, Inc
|
Copyright 2014-2019 Free Software Foundation, Inc
|
||||||
Copyright 2015, 2016 Google Inc. All rights reserved.
|
Copyright 2015, 2016 Google Inc. All rights reserved.
|
||||||
Copyright 2019-2023 AdaCore
|
Copyright 2019-2024 AdaCore
|
||||||
|
|
||||||
Written by Alexandre Oliva <oliva@adacore.com>, based on the AFL++
|
Written by Alexandre Oliva <oliva@adacore.com>, based on the AFL++
|
||||||
GCC plugin.
|
GCC plugin.
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
Copyright 2014-2019 Free Software Foundation, Inc
|
Copyright 2014-2019 Free Software Foundation, Inc
|
||||||
Copyright 2015, 2016 Google Inc. All rights reserved.
|
Copyright 2015, 2016 Google Inc. All rights reserved.
|
||||||
Copyright 2019-2023 AdaCore
|
Copyright 2019-2024 AdaCore
|
||||||
|
|
||||||
Written by Alexandre Oliva <oliva@adacore.com>, based on the AFL
|
Written by Alexandre Oliva <oliva@adacore.com>, based on the AFL
|
||||||
LLVM pass by Laszlo Szekeres <lszekeres@google.com> and Michal
|
LLVM pass by Laszlo Szekeres <lszekeres@google.com> and Michal
|
||||||
|
@ -97,11 +97,15 @@ bool isIgnoreFunction(const llvm::Function *F) {
|
|||||||
|
|
||||||
static constexpr const char *ignoreSubstringList[] = {
|
static constexpr const char *ignoreSubstringList[] = {
|
||||||
|
|
||||||
"__asan", "__msan", "__ubsan", "__lsan", "__san", "__sanitize",
|
"__asan", "__msan", "__ubsan", "__lsan", "__san",
|
||||||
"__cxx", "DebugCounter", "DwarfDebug", "DebugLoc"
|
"__sanitize", "DebugCounter", "DwarfDebug", "DebugLoc"
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// This check is very sensitive, we must be sure to not include patterns
|
||||||
|
// that are part of user-written C++ functions like the ones including
|
||||||
|
// std::string as parameter (see #1927) as the mangled type is inserted in the
|
||||||
|
// mangled name of the user-written function
|
||||||
for (auto const &ignoreListFunc : ignoreSubstringList) {
|
for (auto const &ignoreListFunc : ignoreSubstringList) {
|
||||||
|
|
||||||
// hexcoder: F->getName().contains() not avaiilable in llvm 3.8.0
|
// hexcoder: F->getName().contains() not avaiilable in llvm 3.8.0
|
||||||
@ -197,7 +201,7 @@ void initInstrumentList() {
|
|||||||
|
|
||||||
if (debug)
|
if (debug)
|
||||||
DEBUGF("loaded allowlist with %zu file and %zu function entries\n",
|
DEBUGF("loaded allowlist with %zu file and %zu function entries\n",
|
||||||
allowListFiles.size(), allowListFunctions.size());
|
allowListFiles.size() / 4, allowListFunctions.size() / 4);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -272,7 +276,7 @@ void initInstrumentList() {
|
|||||||
|
|
||||||
if (debug)
|
if (debug)
|
||||||
DEBUGF("loaded denylist with %zu file and %zu function entries\n",
|
DEBUGF("loaded denylist with %zu file and %zu function entries\n",
|
||||||
denyListFiles.size(), denyListFunctions.size());
|
denyListFiles.size() / 4, denyListFunctions.size() / 4);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
Written by Marc Heuse <mh@mh-sec.de>
|
Written by Marc Heuse <mh@mh-sec.de>
|
||||||
|
|
||||||
Copyright 2019-2023 AFLplusplus Project. All rights reserved.
|
Copyright 2019-2024 AFLplusplus Project. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
@ -433,32 +433,35 @@ bool AFLdict2filePass::runOnModule(Module &M) {
|
|||||||
isStrstr &=
|
isStrstr &=
|
||||||
FT->getNumParams() == 2 &&
|
FT->getNumParams() == 2 &&
|
||||||
FT->getParamType(0) == FT->getParamType(1) &&
|
FT->getParamType(0) == FT->getParamType(1) &&
|
||||||
FT->getParamType(0) == IntegerType::getInt8PtrTy(M.getContext());
|
FT->getParamType(0) ==
|
||||||
|
IntegerType::getInt8Ty(M.getContext())->getPointerTo(0);
|
||||||
isStrcmp &=
|
isStrcmp &=
|
||||||
FT->getNumParams() == 2 && FT->getReturnType()->isIntegerTy(32) &&
|
FT->getNumParams() == 2 && FT->getReturnType()->isIntegerTy(32) &&
|
||||||
FT->getParamType(0) == FT->getParamType(1) &&
|
FT->getParamType(0) == FT->getParamType(1) &&
|
||||||
FT->getParamType(0) == IntegerType::getInt8PtrTy(M.getContext());
|
FT->getParamType(0) ==
|
||||||
|
IntegerType::getInt8Ty(M.getContext())->getPointerTo(0);
|
||||||
isStrcasecmp &=
|
isStrcasecmp &=
|
||||||
FT->getNumParams() == 2 && FT->getReturnType()->isIntegerTy(32) &&
|
FT->getNumParams() == 2 && FT->getReturnType()->isIntegerTy(32) &&
|
||||||
FT->getParamType(0) == FT->getParamType(1) &&
|
FT->getParamType(0) == FT->getParamType(1) &&
|
||||||
FT->getParamType(0) == IntegerType::getInt8PtrTy(M.getContext());
|
FT->getParamType(0) ==
|
||||||
|
IntegerType::getInt8Ty(M.getContext())->getPointerTo(0);
|
||||||
isMemcmp &= FT->getNumParams() == 3 &&
|
isMemcmp &= FT->getNumParams() == 3 &&
|
||||||
FT->getReturnType()->isIntegerTy(32) &&
|
FT->getReturnType()->isIntegerTy(32) &&
|
||||||
FT->getParamType(0)->isPointerTy() &&
|
FT->getParamType(0)->isPointerTy() &&
|
||||||
FT->getParamType(1)->isPointerTy() &&
|
FT->getParamType(1)->isPointerTy() &&
|
||||||
FT->getParamType(2)->isIntegerTy();
|
FT->getParamType(2)->isIntegerTy();
|
||||||
isStrncmp &= FT->getNumParams() == 3 &&
|
isStrncmp &=
|
||||||
FT->getReturnType()->isIntegerTy(32) &&
|
FT->getNumParams() == 3 && FT->getReturnType()->isIntegerTy(32) &&
|
||||||
FT->getParamType(0) == FT->getParamType(1) &&
|
FT->getParamType(0) == FT->getParamType(1) &&
|
||||||
FT->getParamType(0) ==
|
FT->getParamType(0) ==
|
||||||
IntegerType::getInt8PtrTy(M.getContext()) &&
|
IntegerType::getInt8Ty(M.getContext())->getPointerTo(0) &&
|
||||||
FT->getParamType(2)->isIntegerTy();
|
FT->getParamType(2)->isIntegerTy();
|
||||||
isStrncasecmp &= FT->getNumParams() == 3 &&
|
isStrncasecmp &=
|
||||||
FT->getReturnType()->isIntegerTy(32) &&
|
FT->getNumParams() == 3 && FT->getReturnType()->isIntegerTy(32) &&
|
||||||
FT->getParamType(0) == FT->getParamType(1) &&
|
FT->getParamType(0) == FT->getParamType(1) &&
|
||||||
FT->getParamType(0) ==
|
FT->getParamType(0) ==
|
||||||
IntegerType::getInt8PtrTy(M.getContext()) &&
|
IntegerType::getInt8Ty(M.getContext())->getPointerTo(0) &&
|
||||||
FT->getParamType(2)->isIntegerTy();
|
FT->getParamType(2)->isIntegerTy();
|
||||||
isStdString &= FT->getNumParams() >= 2 &&
|
isStdString &= FT->getNumParams() >= 2 &&
|
||||||
FT->getParamType(0)->isPointerTy() &&
|
FT->getParamType(0)->isPointerTy() &&
|
||||||
FT->getParamType(1)->isPointerTy();
|
FT->getParamType(1)->isPointerTy();
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
from afl-as.c are Michal's fault.
|
from afl-as.c are Michal's fault.
|
||||||
|
|
||||||
Copyright 2015, 2016 Google Inc. All rights reserved.
|
Copyright 2015, 2016 Google Inc. All rights reserved.
|
||||||
Copyright 2019-2023 AFLplusplus Project. All rights reserved.
|
Copyright 2019-2024 AFLplusplus Project. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
NGRAM previous location coverage comes from Adrian Herrera.
|
NGRAM previous location coverage comes from Adrian Herrera.
|
||||||
|
|
||||||
Copyright 2015, 2016 Google Inc. All rights reserved.
|
Copyright 2015, 2016 Google Inc. All rights reserved.
|
||||||
Copyright 2019-2023 AFLplusplus Project. All rights reserved.
|
Copyright 2019-2024 AFLplusplus Project. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
Written by Andrea Fioraldi <andreafioraldi@gmail.com>
|
Written by Andrea Fioraldi <andreafioraldi@gmail.com>
|
||||||
|
|
||||||
Copyright 2015, 2016 Google Inc. All rights reserved.
|
Copyright 2015, 2016 Google Inc. All rights reserved.
|
||||||
Copyright 2019-2023 AFLplusplus Project. All rights reserved.
|
Copyright 2019-2024 AFLplusplus Project. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
@ -90,7 +90,7 @@ class CmpLogInstructions : public ModulePass {
|
|||||||
#if LLVM_MAJOR >= 11 /* use new pass manager */
|
#if LLVM_MAJOR >= 11 /* use new pass manager */
|
||||||
PreservedAnalyses run(Module &M, ModuleAnalysisManager &MAM);
|
PreservedAnalyses run(Module &M, ModuleAnalysisManager &MAM);
|
||||||
#else
|
#else
|
||||||
bool runOnModule(Module &M) override;
|
bool runOnModule(Module &M) override;
|
||||||
|
|
||||||
#if LLVM_VERSION_MAJOR >= 4
|
#if LLVM_VERSION_MAJOR >= 4
|
||||||
StringRef getPassName() const override {
|
StringRef getPassName() const override {
|
||||||
@ -165,23 +165,25 @@ bool CmpLogInstructions::hookInstrs(Module &M) {
|
|||||||
IntegerType *Int64Ty = IntegerType::getInt64Ty(C);
|
IntegerType *Int64Ty = IntegerType::getInt64Ty(C);
|
||||||
IntegerType *Int128Ty = IntegerType::getInt128Ty(C);
|
IntegerType *Int128Ty = IntegerType::getInt128Ty(C);
|
||||||
|
|
||||||
#if LLVM_VERSION_MAJOR >= 9
|
/*
|
||||||
FunctionCallee
|
#if LLVM_VERSION_MAJOR >= 9
|
||||||
#else
|
FunctionCallee
|
||||||
Constant *
|
#else
|
||||||
#endif
|
Constant *
|
||||||
c1 = M.getOrInsertFunction("__cmplog_ins_hook1", VoidTy, Int8Ty, Int8Ty,
|
#endif
|
||||||
Int8Ty
|
c1 = M.getOrInsertFunction("__cmplog_ins_hook1", VoidTy, Int8Ty, Int8Ty,
|
||||||
#if LLVM_VERSION_MAJOR < 5
|
Int8Ty
|
||||||
,
|
#if LLVM_VERSION_MAJOR < 5
|
||||||
NULL
|
,
|
||||||
#endif
|
NULL
|
||||||
);
|
#endif
|
||||||
#if LLVM_VERSION_MAJOR >= 9
|
);
|
||||||
FunctionCallee cmplogHookIns1 = c1;
|
#if LLVM_VERSION_MAJOR >= 9
|
||||||
#else
|
FunctionCallee cmplogHookIns1 = c1;
|
||||||
Function *cmplogHookIns1 = cast<Function>(c1);
|
#else
|
||||||
#endif
|
Function *cmplogHookIns1 = cast<Function>(c1);
|
||||||
|
#endif
|
||||||
|
*/
|
||||||
|
|
||||||
#if LLVM_VERSION_MAJOR >= 9
|
#if LLVM_VERSION_MAJOR >= 9
|
||||||
FunctionCallee
|
FunctionCallee
|
||||||
@ -619,7 +621,7 @@ bool CmpLogInstructions::hookInstrs(Module &M) {
|
|||||||
switch (cast_size) {
|
switch (cast_size) {
|
||||||
|
|
||||||
case 8:
|
case 8:
|
||||||
IRB.CreateCall(cmplogHookIns1, args);
|
// IRB.CreateCall(cmplogHookIns1, args);
|
||||||
break;
|
break;
|
||||||
case 16:
|
case 16:
|
||||||
IRB.CreateCall(cmplogHookIns2, args);
|
IRB.CreateCall(cmplogHookIns2, args);
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
Written by Andrea Fioraldi <andreafioraldi@gmail.com>
|
Written by Andrea Fioraldi <andreafioraldi@gmail.com>
|
||||||
|
|
||||||
Copyright 2015, 2016 Google Inc. All rights reserved.
|
Copyright 2015, 2016 Google Inc. All rights reserved.
|
||||||
Copyright 2019-2023 AFLplusplus Project. All rights reserved.
|
Copyright 2019-2024 AFLplusplus Project. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
@ -85,7 +85,7 @@ class CmpLogRoutines : public ModulePass {
|
|||||||
#if LLVM_VERSION_MAJOR >= 11 /* use new pass manager */
|
#if LLVM_VERSION_MAJOR >= 11 /* use new pass manager */
|
||||||
PreservedAnalyses run(Module &M, ModuleAnalysisManager &MAM);
|
PreservedAnalyses run(Module &M, ModuleAnalysisManager &MAM);
|
||||||
#else
|
#else
|
||||||
bool runOnModule(Module &M) override;
|
bool runOnModule(Module &M) override;
|
||||||
|
|
||||||
#if LLVM_VERSION_MAJOR >= 4
|
#if LLVM_VERSION_MAJOR >= 4
|
||||||
StringRef getPassName() const override {
|
StringRef getPassName() const override {
|
||||||
@ -385,7 +385,8 @@ bool CmpLogRoutines::hookRtns(Module &M) {
|
|||||||
isStrcmp &=
|
isStrcmp &=
|
||||||
FT->getNumParams() == 2 && FT->getReturnType()->isIntegerTy(32) &&
|
FT->getNumParams() == 2 && FT->getReturnType()->isIntegerTy(32) &&
|
||||||
FT->getParamType(0) == FT->getParamType(1) &&
|
FT->getParamType(0) == FT->getParamType(1) &&
|
||||||
FT->getParamType(0) == IntegerType::getInt8PtrTy(M.getContext());
|
FT->getParamType(0) ==
|
||||||
|
IntegerType::getInt8Ty(M.getContext())->getPointerTo(0);
|
||||||
|
|
||||||
bool isStrncmp = (!FuncName.compare("strncmp") ||
|
bool isStrncmp = (!FuncName.compare("strncmp") ||
|
||||||
!FuncName.compare("xmlStrncmp") ||
|
!FuncName.compare("xmlStrncmp") ||
|
||||||
@ -398,12 +399,12 @@ bool CmpLogRoutines::hookRtns(Module &M) {
|
|||||||
!FuncName.compare("g_ascii_strncasecmp") ||
|
!FuncName.compare("g_ascii_strncasecmp") ||
|
||||||
!FuncName.compare("Curl_strncasecompare") ||
|
!FuncName.compare("Curl_strncasecompare") ||
|
||||||
!FuncName.compare("g_strncasecmp"));
|
!FuncName.compare("g_strncasecmp"));
|
||||||
isStrncmp &= FT->getNumParams() == 3 &&
|
isStrncmp &=
|
||||||
FT->getReturnType()->isIntegerTy(32) &&
|
FT->getNumParams() == 3 && FT->getReturnType()->isIntegerTy(32) &&
|
||||||
FT->getParamType(0) == FT->getParamType(1) &&
|
FT->getParamType(0) == FT->getParamType(1) &&
|
||||||
FT->getParamType(0) ==
|
FT->getParamType(0) ==
|
||||||
IntegerType::getInt8PtrTy(M.getContext()) &&
|
IntegerType::getInt8Ty(M.getContext())->getPointerTo(0) &&
|
||||||
FT->getParamType(2)->isIntegerTy();
|
FT->getParamType(2)->isIntegerTy();
|
||||||
|
|
||||||
bool isGccStdStringStdString =
|
bool isGccStdStringStdString =
|
||||||
Callee->getName().find("__is_charIT_EE7__value") !=
|
Callee->getName().find("__is_charIT_EE7__value") !=
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
Written by Andrea Fioraldi <andreafioraldi@gmail.com>
|
Written by Andrea Fioraldi <andreafioraldi@gmail.com>
|
||||||
|
|
||||||
Copyright 2015, 2016 Google Inc. All rights reserved.
|
Copyright 2015, 2016 Google Inc. All rights reserved.
|
||||||
Copyright 2019-2023 AFLplusplus Project. All rights reserved.
|
Copyright 2019-2024 AFLplusplus Project. All rights reserved.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
@ -85,7 +85,7 @@ class CmplogSwitches : public ModulePass {
|
|||||||
#if LLVM_VERSION_MAJOR >= 11 /* use new pass manager */
|
#if LLVM_VERSION_MAJOR >= 11 /* use new pass manager */
|
||||||
PreservedAnalyses run(Module &M, ModuleAnalysisManager &MAM);
|
PreservedAnalyses run(Module &M, ModuleAnalysisManager &MAM);
|
||||||
#else
|
#else
|
||||||
bool runOnModule(Module &M) override;
|
bool runOnModule(Module &M) override;
|
||||||
|
|
||||||
#if LLVM_VERSION_MAJOR < 4
|
#if LLVM_VERSION_MAJOR < 4
|
||||||
const char *getPassName() const override {
|
const char *getPassName() const override {
|
||||||
|
@ -271,28 +271,30 @@ bool CompareTransform::transformCmps(Module &M, const bool processStrcmp,
|
|||||||
isStrcmp &=
|
isStrcmp &=
|
||||||
FT->getNumParams() == 2 && FT->getReturnType()->isIntegerTy(32) &&
|
FT->getNumParams() == 2 && FT->getReturnType()->isIntegerTy(32) &&
|
||||||
FT->getParamType(0) == FT->getParamType(1) &&
|
FT->getParamType(0) == FT->getParamType(1) &&
|
||||||
FT->getParamType(0) == IntegerType::getInt8PtrTy(M.getContext());
|
FT->getParamType(0) ==
|
||||||
|
IntegerType::getInt8Ty(M.getContext())->getPointerTo(0);
|
||||||
isStrcasecmp &=
|
isStrcasecmp &=
|
||||||
FT->getNumParams() == 2 && FT->getReturnType()->isIntegerTy(32) &&
|
FT->getNumParams() == 2 && FT->getReturnType()->isIntegerTy(32) &&
|
||||||
FT->getParamType(0) == FT->getParamType(1) &&
|
FT->getParamType(0) == FT->getParamType(1) &&
|
||||||
FT->getParamType(0) == IntegerType::getInt8PtrTy(M.getContext());
|
FT->getParamType(0) ==
|
||||||
|
IntegerType::getInt8Ty(M.getContext())->getPointerTo(0);
|
||||||
isMemcmp &= FT->getNumParams() == 3 &&
|
isMemcmp &= FT->getNumParams() == 3 &&
|
||||||
FT->getReturnType()->isIntegerTy(32) &&
|
FT->getReturnType()->isIntegerTy(32) &&
|
||||||
FT->getParamType(0)->isPointerTy() &&
|
FT->getParamType(0)->isPointerTy() &&
|
||||||
FT->getParamType(1)->isPointerTy() &&
|
FT->getParamType(1)->isPointerTy() &&
|
||||||
FT->getParamType(2)->isIntegerTy();
|
FT->getParamType(2)->isIntegerTy();
|
||||||
isStrncmp &= FT->getNumParams() == 3 &&
|
isStrncmp &=
|
||||||
FT->getReturnType()->isIntegerTy(32) &&
|
FT->getNumParams() == 3 && FT->getReturnType()->isIntegerTy(32) &&
|
||||||
FT->getParamType(0) == FT->getParamType(1) &&
|
FT->getParamType(0) == FT->getParamType(1) &&
|
||||||
FT->getParamType(0) ==
|
FT->getParamType(0) ==
|
||||||
IntegerType::getInt8PtrTy(M.getContext()) &&
|
IntegerType::getInt8Ty(M.getContext())->getPointerTo(0) &&
|
||||||
FT->getParamType(2)->isIntegerTy();
|
FT->getParamType(2)->isIntegerTy();
|
||||||
isStrncasecmp &= FT->getNumParams() == 3 &&
|
isStrncasecmp &=
|
||||||
FT->getReturnType()->isIntegerTy(32) &&
|
FT->getNumParams() == 3 && FT->getReturnType()->isIntegerTy(32) &&
|
||||||
FT->getParamType(0) == FT->getParamType(1) &&
|
FT->getParamType(0) == FT->getParamType(1) &&
|
||||||
FT->getParamType(0) ==
|
FT->getParamType(0) ==
|
||||||
IntegerType::getInt8PtrTy(M.getContext()) &&
|
IntegerType::getInt8Ty(M.getContext())->getPointerTo(0) &&
|
||||||
FT->getParamType(2)->isIntegerTy();
|
FT->getParamType(2)->isIntegerTy();
|
||||||
|
|
||||||
if (!isStrcmp && !isMemcmp && !isStrncmp && !isStrcasecmp &&
|
if (!isStrcmp && !isMemcmp && !isStrncmp && !isStrcasecmp &&
|
||||||
!isStrncasecmp && !isIntMemcpy)
|
!isStrncasecmp && !isIntMemcpy)
|
||||||
|
366
instrumentation/injection-pass.cc
Normal file
366
instrumentation/injection-pass.cc
Normal file
@ -0,0 +1,366 @@
|
|||||||
|
/*
|
||||||
|
american fuzzy lop++ - LLVM Injection instrumentation
|
||||||
|
--------------------------------------------------
|
||||||
|
|
||||||
|
Written by Marc Heuse <mh@mh-sec.de>
|
||||||
|
|
||||||
|
Copyright 2015, 2016 Google Inc. All rights reserved.
|
||||||
|
Copyright 2019-2024 AFLplusplus Project. All rights reserved.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at:
|
||||||
|
|
||||||
|
https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
|
#include <list>
|
||||||
|
#include <string>
|
||||||
|
#include <fstream>
|
||||||
|
#include <sys/time.h>
|
||||||
|
#include "llvm/Config/llvm-config.h"
|
||||||
|
|
||||||
|
#include "llvm/ADT/Statistic.h"
|
||||||
|
#include "llvm/IR/IRBuilder.h"
|
||||||
|
#if LLVM_VERSION_MAJOR >= 11 /* use new pass manager */
|
||||||
|
#include "llvm/Passes/PassPlugin.h"
|
||||||
|
#include "llvm/Passes/PassBuilder.h"
|
||||||
|
#include "llvm/IR/PassManager.h"
|
||||||
|
#else
|
||||||
|
#include "llvm/IR/LegacyPassManager.h"
|
||||||
|
#include "llvm/Transforms/IPO/PassManagerBuilder.h"
|
||||||
|
#endif
|
||||||
|
#include "llvm/IR/Module.h"
|
||||||
|
#include "llvm/Support/Debug.h"
|
||||||
|
#include "llvm/Support/raw_ostream.h"
|
||||||
|
#if LLVM_VERSION_MAJOR < 17
|
||||||
|
#include "llvm/Transforms/IPO/PassManagerBuilder.h"
|
||||||
|
#endif
|
||||||
|
#include "llvm/Transforms/Utils/BasicBlockUtils.h"
|
||||||
|
#include "llvm/Pass.h"
|
||||||
|
#include "llvm/Analysis/ValueTracking.h"
|
||||||
|
|
||||||
|
#include "llvm/IR/IRBuilder.h"
|
||||||
|
#if LLVM_VERSION_MAJOR >= 4 || \
|
||||||
|
(LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR > 4)
|
||||||
|
#include "llvm/IR/Verifier.h"
|
||||||
|
#include "llvm/IR/DebugInfo.h"
|
||||||
|
#else
|
||||||
|
#include "llvm/Analysis/Verifier.h"
|
||||||
|
#include "llvm/DebugInfo.h"
|
||||||
|
#define nullptr 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <set>
|
||||||
|
#include "afl-llvm-common.h"
|
||||||
|
|
||||||
|
using namespace llvm;
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
|
||||||
|
#if LLVM_VERSION_MAJOR >= 11 /* use new pass manager */
|
||||||
|
class InjectionRoutines : public PassInfoMixin<InjectionRoutines> {
|
||||||
|
|
||||||
|
public:
|
||||||
|
InjectionRoutines() {
|
||||||
|
|
||||||
|
#else
|
||||||
|
class InjectionRoutines : public ModulePass {
|
||||||
|
|
||||||
|
public:
|
||||||
|
static char ID;
|
||||||
|
InjectionRoutines() : ModulePass(ID) {
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
initInstrumentList();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#if LLVM_VERSION_MAJOR >= 11 /* use new pass manager */
|
||||||
|
PreservedAnalyses run(Module &M, ModuleAnalysisManager &MAM);
|
||||||
|
#else
|
||||||
|
bool runOnModule(Module &M) override;
|
||||||
|
|
||||||
|
#if LLVM_VERSION_MAJOR >= 4
|
||||||
|
StringRef getPassName() const override {
|
||||||
|
|
||||||
|
#else
|
||||||
|
const char *getPassName() const override {
|
||||||
|
|
||||||
|
#endif
|
||||||
|
return "Injection routines";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
private:
|
||||||
|
bool hookRtns(Module &M);
|
||||||
|
|
||||||
|
bool doSQL = false;
|
||||||
|
bool doLDAP = false;
|
||||||
|
bool doXSS = false;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace
|
||||||
|
|
||||||
|
#if LLVM_MAJOR >= 11
|
||||||
|
extern "C" ::llvm::PassPluginLibraryInfo LLVM_ATTRIBUTE_WEAK
|
||||||
|
llvmGetPassPluginInfo() {
|
||||||
|
|
||||||
|
return {LLVM_PLUGIN_API_VERSION, "Injectionroutines", "v0.1",
|
||||||
|
/* lambda to insert our pass into the pass pipeline. */
|
||||||
|
[](PassBuilder &PB) {
|
||||||
|
|
||||||
|
#if LLVM_VERSION_MAJOR <= 13
|
||||||
|
using OptimizationLevel = typename PassBuilder::OptimizationLevel;
|
||||||
|
#endif
|
||||||
|
PB.registerOptimizerLastEPCallback(
|
||||||
|
[](ModulePassManager &MPM, OptimizationLevel OL) {
|
||||||
|
|
||||||
|
MPM.addPass(InjectionRoutines());
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
}};
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#else
|
||||||
|
char InjectionRoutines::ID = 0;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
bool InjectionRoutines::hookRtns(Module &M) {
|
||||||
|
|
||||||
|
std::vector<CallInst *> calls, llvmStdStd, llvmStdC, gccStdStd, gccStdC,
|
||||||
|
Memcmp, Strcmp, Strncmp;
|
||||||
|
LLVMContext &C = M.getContext();
|
||||||
|
|
||||||
|
Type *VoidTy = Type::getVoidTy(C);
|
||||||
|
IntegerType *Int8Ty = IntegerType::getInt8Ty(C);
|
||||||
|
PointerType *i8PtrTy = PointerType::get(Int8Ty, 0);
|
||||||
|
|
||||||
|
#if LLVM_VERSION_MAJOR >= 9
|
||||||
|
FunctionCallee
|
||||||
|
#else
|
||||||
|
Constant *
|
||||||
|
#endif
|
||||||
|
c1 = M.getOrInsertFunction("__afl_injection_sql", VoidTy, i8PtrTy
|
||||||
|
#if LLVM_VERSION_MAJOR < 5
|
||||||
|
,
|
||||||
|
NULL
|
||||||
|
#endif
|
||||||
|
);
|
||||||
|
#if LLVM_VERSION_MAJOR >= 9
|
||||||
|
FunctionCallee sqlfunc = c1;
|
||||||
|
#else
|
||||||
|
Function *sqlfunc = cast<Function>(c1);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if LLVM_VERSION_MAJOR >= 9
|
||||||
|
FunctionCallee
|
||||||
|
#else
|
||||||
|
Constant *
|
||||||
|
#endif
|
||||||
|
c2 = M.getOrInsertFunction("__afl_injection_ldap", VoidTy, i8PtrTy
|
||||||
|
#if LLVM_VERSION_MAJOR < 5
|
||||||
|
,
|
||||||
|
NULL
|
||||||
|
#endif
|
||||||
|
);
|
||||||
|
#if LLVM_VERSION_MAJOR >= 9
|
||||||
|
FunctionCallee ldapfunc = c2;
|
||||||
|
#else
|
||||||
|
Function *ldapfunc = cast<Function>(c2);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if LLVM_VERSION_MAJOR >= 9
|
||||||
|
FunctionCallee
|
||||||
|
#else
|
||||||
|
Constant *
|
||||||
|
#endif
|
||||||
|
c3 = M.getOrInsertFunction("__afl_injection_xss", VoidTy, i8PtrTy
|
||||||
|
#if LLVM_VERSION_MAJOR < 5
|
||||||
|
,
|
||||||
|
NULL
|
||||||
|
#endif
|
||||||
|
);
|
||||||
|
#if LLVM_VERSION_MAJOR >= 9
|
||||||
|
FunctionCallee xssfunc = c3;
|
||||||
|
#else
|
||||||
|
Function *xssfunc = cast<Function>(c3);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if LLVM_VERSION_MAJOR >= 9
|
||||||
|
FunctionCallee FuncPtr;
|
||||||
|
#else
|
||||||
|
Function *FuncPtr;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* iterate over all functions, bbs and instruction and add suitable calls */
|
||||||
|
for (auto &F : M) {
|
||||||
|
|
||||||
|
if (!isInInstrumentList(&F, MNAME)) continue;
|
||||||
|
|
||||||
|
for (auto &BB : F) {
|
||||||
|
|
||||||
|
for (auto &IN : BB) {
|
||||||
|
|
||||||
|
CallInst *callInst = nullptr;
|
||||||
|
|
||||||
|
if ((callInst = dyn_cast<CallInst>(&IN))) {
|
||||||
|
|
||||||
|
Function *Callee = callInst->getCalledFunction();
|
||||||
|
if (!Callee) continue;
|
||||||
|
if (callInst->getCallingConv() != llvm::CallingConv::C) continue;
|
||||||
|
|
||||||
|
std::string FuncName = Callee->getName().str();
|
||||||
|
FuncPtr = nullptr;
|
||||||
|
size_t param = 0;
|
||||||
|
|
||||||
|
// Marker: ADD_TO_INJECTIONS
|
||||||
|
// If you just need to add another function to test for SQL etc.
|
||||||
|
// then add them here.
|
||||||
|
// To add a new class or to work on e.g. std::string/Rust strings/...
|
||||||
|
// you will need to add a function to afl-compiler-rt.c.o and
|
||||||
|
// and upwards in this file add a pointer to that function to use
|
||||||
|
// here.
|
||||||
|
|
||||||
|
if (doSQL &&
|
||||||
|
(FuncName.compare("sqlite3_exec") == 0 ||
|
||||||
|
FuncName.compare("PQexec") == 0 || FuncName.compare("") == 0 ||
|
||||||
|
FuncName.compare("PQexecParams") == 0 ||
|
||||||
|
FuncName.compare("mysql_query") == 0)) {
|
||||||
|
|
||||||
|
if (!be_quiet) {
|
||||||
|
|
||||||
|
errs() << "Injection SQL hook: " << FuncName << "\n";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
FuncPtr = sqlfunc;
|
||||||
|
param = 1;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (doLDAP && (FuncName.compare("ldap_search_ext") == 0 ||
|
||||||
|
FuncName.compare("ldap_search_ext_s") == 0)) {
|
||||||
|
|
||||||
|
if (!be_quiet) {
|
||||||
|
|
||||||
|
errs() << "Injection LDAP hook: " << FuncName << "\n";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
FuncPtr = ldapfunc;
|
||||||
|
param = 1;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (doXSS && (FuncName.compare("htmlReadMemory") == 0)) {
|
||||||
|
|
||||||
|
if (!be_quiet) {
|
||||||
|
|
||||||
|
errs() << "Injection XSS hook: " << FuncName << "\n";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
FuncPtr = xssfunc;
|
||||||
|
param = 1;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (FuncPtr) {
|
||||||
|
|
||||||
|
IRBuilder<> IRB(callInst->getParent());
|
||||||
|
IRB.SetInsertPoint(callInst);
|
||||||
|
|
||||||
|
Value *parameter = callInst->getArgOperand(param);
|
||||||
|
|
||||||
|
std::vector<Value *> args;
|
||||||
|
Value *casted = IRB.CreatePointerCast(parameter, i8PtrTy);
|
||||||
|
args.push_back(casted);
|
||||||
|
IRB.CreateCall(FuncPtr, args);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#if LLVM_VERSION_MAJOR >= 11 /* use new pass manager */
|
||||||
|
PreservedAnalyses InjectionRoutines::run(Module &M,
|
||||||
|
ModuleAnalysisManager &MAM) {
|
||||||
|
|
||||||
|
#else
|
||||||
|
bool InjectionRoutines::runOnModule(Module &M) {
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (getenv("AFL_QUIET") == NULL)
|
||||||
|
printf("Running injection-pass by Marc Heuse (mh@mh-sec.de)\n");
|
||||||
|
else
|
||||||
|
be_quiet = 1;
|
||||||
|
if (getenv("AFL_LLVM_INJECTIONS_ALL")) {
|
||||||
|
|
||||||
|
doSQL = true;
|
||||||
|
doLDAP = true;
|
||||||
|
doXSS = true;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (getenv("AFL_LLVM_INJECTIONS_SQL")) { doSQL = true; }
|
||||||
|
if (getenv("AFL_LLVM_INJECTIONS_LDAP")) { doLDAP = true; }
|
||||||
|
if (getenv("AFL_LLVM_INJECTIONS_XSS")) { doXSS = true; }
|
||||||
|
|
||||||
|
hookRtns(M);
|
||||||
|
#if LLVM_VERSION_MAJOR >= 11 /* use new pass manager */
|
||||||
|
auto PA = PreservedAnalyses::all();
|
||||||
|
#endif
|
||||||
|
verifyModule(M);
|
||||||
|
|
||||||
|
#if LLVM_VERSION_MAJOR >= 11 /* use new pass manager */
|
||||||
|
return PA;
|
||||||
|
#else
|
||||||
|
return true;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#if LLVM_VERSION_MAJOR < 11 /* use old pass manager */
|
||||||
|
static void registerInjectionRoutinesPass(const PassManagerBuilder &,
|
||||||
|
legacy::PassManagerBase &PM) {
|
||||||
|
|
||||||
|
auto p = new InjectionRoutines();
|
||||||
|
PM.add(p);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
static RegisterStandardPasses RegisterInjectionRoutinesPass(
|
||||||
|
PassManagerBuilder::EP_OptimizerLast, registerInjectionRoutinesPass);
|
||||||
|
|
||||||
|
static RegisterStandardPasses RegisterInjectionRoutinesPass0(
|
||||||
|
PassManagerBuilder::EP_EnabledOnOptLevel0, registerInjectionRoutinesPass);
|
||||||
|
|
||||||
|
#if LLVM_VERSION_MAJOR >= 11
|
||||||
|
static RegisterStandardPasses RegisterInjectionRoutinesPassLTO(
|
||||||
|
PassManagerBuilder::EP_FullLinkTimeOptimizationLast,
|
||||||
|
registerInjectionRoutinesPass);
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
@ -1584,7 +1584,7 @@ size_t SplitComparesTransform::splitFPCompares(Module &M) {
|
|||||||
CmpInst::Create(Instruction::ICmp, CmpInst::ICMP_UGT, t_f0, t_f1);
|
CmpInst::Create(Instruction::ICmp, CmpInst::ICMP_UGT, t_f0, t_f1);
|
||||||
#if LLVM_MAJOR >= 16
|
#if LLVM_MAJOR >= 16
|
||||||
icmp_fraction_result->insertInto(negative_bb, negative_bb->end());
|
icmp_fraction_result->insertInto(negative_bb, negative_bb->end());
|
||||||
icmp_fraction_result2->insertInto(positive_bb, negative_bb->end());
|
icmp_fraction_result2->insertInto(positive_bb, positive_bb->end());
|
||||||
#else
|
#else
|
||||||
negative_bb->getInstList().push_back(icmp_fraction_result);
|
negative_bb->getInstList().push_back(icmp_fraction_result);
|
||||||
positive_bb->getInstList().push_back(icmp_fraction_result2);
|
positive_bb->getInstList().push_back(icmp_fraction_result2);
|
||||||
@ -1598,7 +1598,7 @@ size_t SplitComparesTransform::splitFPCompares(Module &M) {
|
|||||||
CmpInst::Create(Instruction::ICmp, CmpInst::ICMP_ULT, t_f0, t_f1);
|
CmpInst::Create(Instruction::ICmp, CmpInst::ICMP_ULT, t_f0, t_f1);
|
||||||
#if LLVM_MAJOR >= 16
|
#if LLVM_MAJOR >= 16
|
||||||
icmp_fraction_result->insertInto(negative_bb, negative_bb->end());
|
icmp_fraction_result->insertInto(negative_bb, negative_bb->end());
|
||||||
icmp_fraction_result2->insertInto(positive_bb, negative_bb->end());
|
icmp_fraction_result2->insertInto(positive_bb, positive_bb->end());
|
||||||
#else
|
#else
|
||||||
negative_bb->getInstList().push_back(icmp_fraction_result);
|
negative_bb->getInstList().push_back(icmp_fraction_result);
|
||||||
positive_bb->getInstList().push_back(icmp_fraction_result2);
|
positive_bb->getInstList().push_back(icmp_fraction_result2);
|
||||||
@ -1707,12 +1707,6 @@ bool SplitComparesTransform::runOnModule(Module &M) {
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
char *bitw_env = getenv("AFL_LLVM_LAF_SPLIT_COMPARES_BITW");
|
|
||||||
if (!bitw_env) bitw_env = getenv("LAF_SPLIT_COMPARES_BITW");
|
|
||||||
if (bitw_env) { target_bitwidth = atoi(bitw_env); }
|
|
||||||
|
|
||||||
enableFPSplit = getenv("AFL_LLVM_LAF_SPLIT_FLOATS") != NULL;
|
|
||||||
|
|
||||||
if ((isatty(2) && getenv("AFL_QUIET") == NULL) ||
|
if ((isatty(2) && getenv("AFL_QUIET") == NULL) ||
|
||||||
getenv("AFL_DEBUG") != NULL) {
|
getenv("AFL_DEBUG") != NULL) {
|
||||||
|
|
||||||
@ -1728,6 +1722,27 @@ bool SplitComparesTransform::runOnModule(Module &M) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
char *bitw_env = getenv("AFL_LLVM_LAF_SPLIT_COMPARES_BITW");
|
||||||
|
if (!bitw_env) bitw_env = getenv("LAF_SPLIT_COMPARES_BITW");
|
||||||
|
if (bitw_env) { target_bitwidth = atoi(bitw_env); }
|
||||||
|
|
||||||
|
if (getenv("AFL_LLVM_LAF_SPLIT_FLOATS")) { enableFPSplit = true; }
|
||||||
|
|
||||||
|
bool split_comp = false;
|
||||||
|
|
||||||
|
if (getenv("AFL_LLVM_LAF_SPLIT_COMPARES")) {
|
||||||
|
|
||||||
|
#if LLVM_MAJOR == 17
|
||||||
|
if (!be_quiet)
|
||||||
|
fprintf(stderr,
|
||||||
|
"WARNING: AFL++ splitting integer comparisons is disabled in "
|
||||||
|
"LLVM 17 due bugs, switch to 16 or 18!\n");
|
||||||
|
#else
|
||||||
|
split_comp = true;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
#if LLVM_MAJOR >= 11
|
#if LLVM_MAJOR >= 11
|
||||||
auto PA = PreservedAnalyses::all();
|
auto PA = PreservedAnalyses::all();
|
||||||
#endif
|
#endif
|
||||||
@ -1746,36 +1761,40 @@ bool SplitComparesTransform::runOnModule(Module &M) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<CmpInst *> worklist;
|
if (split_comp) {
|
||||||
/* iterate over all functions, bbs and instruction search for all integer
|
|
||||||
* compare instructions. Save them into the worklist for later. */
|
|
||||||
for (auto &F : M) {
|
|
||||||
|
|
||||||
if (!isInInstrumentList(&F, MNAME)) continue;
|
std::vector<CmpInst *> worklist;
|
||||||
|
/* iterate over all functions, bbs and instruction search for all integer
|
||||||
|
* compare instructions. Save them into the worklist for later. */
|
||||||
|
for (auto &F : M) {
|
||||||
|
|
||||||
for (auto &BB : F) {
|
if (!isInInstrumentList(&F, MNAME)) continue;
|
||||||
|
|
||||||
for (auto &IN : BB) {
|
for (auto &BB : F) {
|
||||||
|
|
||||||
if (auto CI = dyn_cast<CmpInst>(&IN)) {
|
for (auto &IN : BB) {
|
||||||
|
|
||||||
auto op0 = CI->getOperand(0);
|
if (auto CI = dyn_cast<CmpInst>(&IN)) {
|
||||||
auto op1 = CI->getOperand(1);
|
|
||||||
if (!op0 || !op1) {
|
auto op0 = CI->getOperand(0);
|
||||||
|
auto op1 = CI->getOperand(1);
|
||||||
|
if (!op0 || !op1) {
|
||||||
|
|
||||||
#if LLVM_MAJOR >= 11
|
#if LLVM_MAJOR >= 11
|
||||||
return PA;
|
return PA;
|
||||||
#else
|
#else
|
||||||
return false;
|
return false;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
auto iTy1 = dyn_cast<IntegerType>(op0->getType());
|
auto iTy1 = dyn_cast<IntegerType>(op0->getType());
|
||||||
if (iTy1 && isa<IntegerType>(op1->getType())) {
|
if (iTy1 && isa<IntegerType>(op1->getType())) {
|
||||||
|
|
||||||
unsigned bitw = iTy1->getBitWidth();
|
unsigned bitw = iTy1->getBitWidth();
|
||||||
if (isSupportedBitWidth(bitw)) { worklist.push_back(CI); }
|
if (isSupportedBitWidth(bitw)) { worklist.push_back(CI); }
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1785,13 +1804,13 @@ bool SplitComparesTransform::runOnModule(Module &M) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
// now that we have a list of all integer comparisons we can start replacing
|
||||||
|
// them with the splitted alternatives.
|
||||||
|
for (auto CI : worklist) {
|
||||||
|
|
||||||
// now that we have a list of all integer comparisons we can start replacing
|
simplifyAndSplit(CI, M);
|
||||||
// them with the splitted alternatives.
|
|
||||||
for (auto CI : worklist) {
|
|
||||||
|
|
||||||
simplifyAndSplit(CI, M);
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -84,7 +84,7 @@ class SplitSwitchesTransform : public ModulePass {
|
|||||||
#if LLVM_VERSION_MAJOR >= 11 /* use new pass manager */
|
#if LLVM_VERSION_MAJOR >= 11 /* use new pass manager */
|
||||||
PreservedAnalyses run(Module &M, ModuleAnalysisManager &MAM);
|
PreservedAnalyses run(Module &M, ModuleAnalysisManager &MAM);
|
||||||
#else
|
#else
|
||||||
bool runOnModule(Module &M) override;
|
bool runOnModule(Module &M) override;
|
||||||
|
|
||||||
#if LLVM_VERSION_MAJOR >= 4
|
#if LLVM_VERSION_MAJOR >= 4
|
||||||
StringRef getPassName() const override {
|
StringRef getPassName() const override {
|
||||||
|
@ -1 +1 @@
|
|||||||
8291ef4
|
6833d23
|
||||||
|
Submodule nyx_mode/QEMU-Nyx updated: 92ed7cefc1...e5e1c4c21f
@ -1 +1 @@
|
|||||||
874fa033d1
|
e5e1c4c21ff9c4dc80e6409d4eab47146c6024cd
|
||||||
|
@ -84,9 +84,17 @@ Then the final step: we generate the Nyx package configuration:
|
|||||||
python3 nyx_mode/packer/packer/nyx_config_gen.py PACKAGE-DIRECTORY Kernel
|
python3 nyx_mode/packer/packer/nyx_config_gen.py PACKAGE-DIRECTORY Kernel
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
## Fuzzing with Nyx mode
|
## Fuzzing with Nyx mode
|
||||||
|
|
||||||
|
Note that you need to load the kvm kernel modules for Nyx:
|
||||||
|
```
|
||||||
|
sudo modprobe -r kvm-intel
|
||||||
|
sudo modprobe -r kvm
|
||||||
|
sudo modprobe kvm enable_vmware_backdoor=y
|
||||||
|
sudo modprobe kvm-intel
|
||||||
|
cat /sys/module/kvm/parameters/enable_vmware_backdoor | grep -q Y && echi OK || echo KVM module problem
|
||||||
|
```
|
||||||
|
|
||||||
All the hard parts are done, fuzzing with Nyx mode is easy - just supply the
|
All the hard parts are done, fuzzing with Nyx mode is easy - just supply the
|
||||||
`PACKAGE-DIRECTORY` as fuzzing target and specify the `-X` option to afl-fuzz:
|
`PACKAGE-DIRECTORY` as fuzzing target and specify the `-X` option to afl-fuzz:
|
||||||
|
|
||||||
@ -94,16 +102,8 @@ All the hard parts are done, fuzzing with Nyx mode is easy - just supply the
|
|||||||
afl-fuzz -i in -o out -X -- ./PACKAGE-DIRECTORY
|
afl-fuzz -i in -o out -X -- ./PACKAGE-DIRECTORY
|
||||||
```
|
```
|
||||||
|
|
||||||
Most likely your first run will fail because the Linux modules have to be
|
If you get a forkserver error upon starting then you did not load the Linux
|
||||||
specially set up, but afl-fuzz will tell you this on startup and how to rectify
|
kvm kernel modules, see above.
|
||||||
the situation:
|
|
||||||
|
|
||||||
```
|
|
||||||
sudo modprobe -r kvm-intel # or kvm-amd for AMD processors
|
|
||||||
sudo modprobe -r kvm
|
|
||||||
sudo modprobe kvm enable_vmware_backdoor=y
|
|
||||||
sudo modprobe kvm-intel # or kvm-amd for AMD processors
|
|
||||||
```
|
|
||||||
|
|
||||||
If you want to fuzz in parallel (and you should!), then this has to be done in a
|
If you want to fuzz in parallel (and you should!), then this has to be done in a
|
||||||
special way:
|
special way:
|
||||||
|
@ -9,6 +9,21 @@ echo
|
|||||||
|
|
||||||
echo "[*] Performing basic sanity checks..."
|
echo "[*] Performing basic sanity checks..."
|
||||||
|
|
||||||
|
if [ "$CI" = "true" ]; then
|
||||||
|
|
||||||
|
echo "[-] Error: nyx_mode cannot be tested in the Github CI, skipping ..."
|
||||||
|
exit 0
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ -n "$NO_NYX" ]; then
|
||||||
|
|
||||||
|
echo "[-] Error: the NO_NYX environment variable is set, please unset."
|
||||||
|
exit 0
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
if [ ! "$(uname -s)" = "Linux" ]; then
|
if [ ! "$(uname -s)" = "Linux" ]; then
|
||||||
|
|
||||||
echo "[-] Error: Nyx mode is only available on Linux."
|
echo "[-] Error: Nyx mode is only available on Linux."
|
||||||
@ -23,11 +38,17 @@ if [ ! "$(uname -m)" = "x86_64" ]; then
|
|||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
cargo help > /dev/null 2>&1 || {
|
||||||
|
echo "[-] Error: Rust is not installed."
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
|
||||||
echo "[*] Making sure all Nyx is checked out"
|
echo "[*] Making sure all Nyx is checked out"
|
||||||
|
|
||||||
|
|
||||||
if git status 1>/dev/null 2>&1; then
|
if git status 1>/dev/null 2>&1; then
|
||||||
|
|
||||||
|
set +e
|
||||||
git submodule init
|
git submodule init
|
||||||
echo "[*] initializing QEMU-Nyx submodule"
|
echo "[*] initializing QEMU-Nyx submodule"
|
||||||
git submodule update ./QEMU-Nyx 2>/dev/null # ignore errors
|
git submodule update ./QEMU-Nyx 2>/dev/null # ignore errors
|
||||||
@ -35,6 +56,7 @@ if git status 1>/dev/null 2>&1; then
|
|||||||
git submodule update ./packer 2>/dev/null # ignore errors
|
git submodule update ./packer 2>/dev/null # ignore errors
|
||||||
echo "[*] initializing libnyx submodule"
|
echo "[*] initializing libnyx submodule"
|
||||||
git submodule update ./libnyx 2>/dev/null # ignore errors
|
git submodule update ./libnyx 2>/dev/null # ignore errors
|
||||||
|
set -e
|
||||||
|
|
||||||
else
|
else
|
||||||
|
|
||||||
@ -48,20 +70,57 @@ test -e packer/.git || { echo "[-] packer not checked out, please install git or
|
|||||||
test -e libnyx/.git || { echo "[-] libnyx not checked out, please install git or check your internet connection." ; exit 1 ; }
|
test -e libnyx/.git || { echo "[-] libnyx not checked out, please install git or check your internet connection." ; exit 1 ; }
|
||||||
test -e QEMU-Nyx/.git || { echo "[-] QEMU-Nyx not checked out, please install git or check your internet connection." ; exit 1 ; }
|
test -e QEMU-Nyx/.git || { echo "[-] QEMU-Nyx not checked out, please install git or check your internet connection." ; exit 1 ; }
|
||||||
|
|
||||||
echo "[*] checking packer init.cpio.gz ..."
|
|
||||||
if [ ! -f "packer/linux_initramfs/init.cpio.gz" ]; then
|
QEMU_NYX_VERSION="$(cat ./QEMU_NYX_VERSION)"
|
||||||
(cd packer/linux_initramfs/ && sh pack.sh)
|
cd "./QEMU-Nyx" || exit 1
|
||||||
|
if [ -n "$NO_CHECKOUT" ]; then
|
||||||
|
echo "[*] Skipping checkout to $QEMU_NYX_VERSION"
|
||||||
|
else
|
||||||
|
echo "[*] Checking out $QEMU_NYX_VERSION"
|
||||||
|
set +e
|
||||||
|
sh -c 'git stash' 1>/dev/null 2>/dev/null
|
||||||
|
git pull 1>/dev/null 2>/dev/null
|
||||||
|
git checkout "$QEMU_NYX_VERSION" || echo Warning: could not check out to commit $QEMU_NYX_VERSION
|
||||||
|
set -e
|
||||||
fi
|
fi
|
||||||
|
cd - > /dev/null
|
||||||
|
|
||||||
|
PACKER_VERSION="$(cat ./PACKER_VERSION)"
|
||||||
|
cd "./packer" || exit 1
|
||||||
|
if [ -n "$NO_CHECKOUT" ]; then
|
||||||
|
echo "[*] Skipping checkout to $PACKER_VERSION"
|
||||||
|
else
|
||||||
|
echo "[*] Checking out $PACKER_VERSION"
|
||||||
|
set +e
|
||||||
|
sh -c 'git stash' 1>/dev/null 2>/dev/null
|
||||||
|
git pull 1>/dev/null 2>/dev/null
|
||||||
|
git checkout "$PACKER_VERSION" || echo Warning: could not check out to commit $PACKER_VERSION
|
||||||
|
set -e
|
||||||
|
fi
|
||||||
|
cd - > /dev/null
|
||||||
|
|
||||||
|
LIBNYX_VERSION="$(cat ./LIBNYX_VERSION)"
|
||||||
|
cd "./libnyx/" || exit 1
|
||||||
|
if [ -n "$NO_CHECKOUT" ]; then
|
||||||
|
echo "[*] Skipping checkout to $LIBNYX_VERSION"
|
||||||
|
else
|
||||||
|
echo "[*] Checking out $LIBNYX_VERSION"
|
||||||
|
set +e
|
||||||
|
sh -c 'git stash' 1>/dev/null 2>/dev/null
|
||||||
|
git pull 1>/dev/null 2>/dev/null
|
||||||
|
git checkout "$LIBNYX_VERSION" || echo Warning: could not check out to commit $LIBNYX_VERSION
|
||||||
|
set -e
|
||||||
|
fi
|
||||||
|
cd - > /dev/null
|
||||||
|
|
||||||
|
echo "[*] checking packer init.cpio.gz ..."
|
||||||
|
(cd packer/linux_initramfs/ && sh pack.sh)
|
||||||
|
|
||||||
echo "[*] Checking libnyx ..."
|
echo "[*] Checking libnyx ..."
|
||||||
if [ ! -f "libnyx/libnyx/target/release/liblibnyx.a" ]; then
|
(cd libnyx/libnyx && cargo build --release)
|
||||||
(cd libnyx/libnyx && cargo build --release)
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "[*] Checking QEMU-Nyx ..."
|
echo "[*] Checking QEMU-Nyx ..."
|
||||||
if [ ! -f "QEMU-Nyx/x86_64-softmmu/qemu-system-x86_64" ]; then
|
(cd QEMU-Nyx && ./compile_qemu_nyx.sh static )
|
||||||
(cd QEMU-Nyx && ./compile_qemu_nyx.sh static)
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "[*] Checking libnyx.so ..."
|
echo "[*] Checking libnyx.so ..."
|
||||||
cp libnyx/libnyx/target/release/liblibnyx.so ../libnyx.so
|
cp libnyx/libnyx/target/release/liblibnyx.so ../libnyx.so
|
||||||
|
Submodule nyx_mode/libnyx updated: 8291ef4cb4...6833d236df
@ -41,7 +41,7 @@ cd ..
|
|||||||
rm "$UC_VERSION_FILE"
|
rm "$UC_VERSION_FILE"
|
||||||
echo "$NEW_VERSION" > "$UC_VERSION_FILE"
|
echo "$NEW_VERSION" > "$UC_VERSION_FILE"
|
||||||
|
|
||||||
echo "Done. New XXX version is $NEW_VERSION."
|
echo "Done. New libnyx version is $NEW_VERSION."
|
||||||
|
|
||||||
|
|
||||||
UC_VERSION_FILE='./PACKER_VERSION'
|
UC_VERSION_FILE='./PACKER_VERSION'
|
||||||
@ -68,7 +68,7 @@ cd ..
|
|||||||
rm "$UC_VERSION_FILE"
|
rm "$UC_VERSION_FILE"
|
||||||
echo "$NEW_VERSION" > "$UC_VERSION_FILE"
|
echo "$NEW_VERSION" > "$UC_VERSION_FILE"
|
||||||
|
|
||||||
echo "Done. New XXX version is $NEW_VERSION."
|
echo "Done. New packer version is $NEW_VERSION."
|
||||||
|
|
||||||
|
|
||||||
UC_VERSION_FILE='./QEMU_NYX_VERSION'
|
UC_VERSION_FILE='./QEMU_NYX_VERSION'
|
||||||
@ -95,5 +95,5 @@ cd ..
|
|||||||
rm "$UC_VERSION_FILE"
|
rm "$UC_VERSION_FILE"
|
||||||
echo "$NEW_VERSION" > "$UC_VERSION_FILE"
|
echo "$NEW_VERSION" > "$UC_VERSION_FILE"
|
||||||
|
|
||||||
echo "Done. New XXX version is $NEW_VERSION."
|
echo "Done. New QEMU-Nyx version is $NEW_VERSION."
|
||||||
|
|
||||||
|
@ -1 +1 @@
|
|||||||
a1321713c7
|
e63c9af193
|
||||||
|
@ -193,12 +193,39 @@ Comparative measurements of execution speed or instrumentation coverage will be
|
|||||||
fairly meaningless if the optimization levels or instrumentation scopes don't
|
fairly meaningless if the optimization levels or instrumentation scopes don't
|
||||||
match.
|
match.
|
||||||
|
|
||||||
## 12) Other features
|
## 12) Coverage information
|
||||||
|
|
||||||
|
Coverage information about a run of a target binary can be obtained using a
|
||||||
|
dedicated QEMU user mode plugin enabled at runtime: the `drcov.c` plugin
|
||||||
|
collects coverage information from the target binary and writes it in the Drcov
|
||||||
|
format. This file can then be loaded using tools such as
|
||||||
|
[lighthouse](https://github.com/gaasedelen/lighthouse),
|
||||||
|
[lightkeeper](https://github.com/WorksButNotTested/lightkeeper) or
|
||||||
|
[Cartographer](https://github.com/nccgroup/Cartographer).
|
||||||
|
|
||||||
|
To compile the QEMU TCG plugins, run the following command from the `qemuafl`
|
||||||
|
directory:
|
||||||
|
|
||||||
|
```
|
||||||
|
make plugins
|
||||||
|
```
|
||||||
|
|
||||||
|
Plugins can be loaded using either the `QEMU_PLUGIN` environment variable or
|
||||||
|
using the `-plugin` option. For example:
|
||||||
|
|
||||||
|
```
|
||||||
|
afl-qemu-trace -plugin qemuafl/build/contrib/plugins/libdrcov.so,arg=filename=/tmp/target.drcov.trace <target> <args>
|
||||||
|
```
|
||||||
|
|
||||||
|
This would execute the target binary with the provided arguments and, once done,
|
||||||
|
would write coverage information at `/tmp/target.drcov.trace`.
|
||||||
|
|
||||||
|
## 13) Other features
|
||||||
|
|
||||||
With `AFL_QEMU_FORCE_DFL`, you force QEMU to ignore the registered signal
|
With `AFL_QEMU_FORCE_DFL`, you force QEMU to ignore the registered signal
|
||||||
handlers of the target.
|
handlers of the target.
|
||||||
|
|
||||||
## 13) Gotchas, feedback, bugs
|
## 14) Gotchas, feedback, bugs
|
||||||
|
|
||||||
If you need to fix up checksums or do other cleanups on mutated test cases, see
|
If you need to fix up checksums or do other cleanups on mutated test cases, see
|
||||||
`afl_custom_post_process` in custom_mutators/examples/example.c for a viable
|
`afl_custom_post_process` in custom_mutators/examples/example.c for a viable
|
||||||
@ -217,7 +244,7 @@ program may be utilizing. In particular, it does not appear to have full support
|
|||||||
for AVX2/FMA3. Using binaries for older CPUs or recompiling them with
|
for AVX2/FMA3. Using binaries for older CPUs or recompiling them with
|
||||||
`-march=core2`, can help.
|
`-march=core2`, can help.
|
||||||
|
|
||||||
## 14) Alternatives: static rewriting
|
## 15) Alternatives: static rewriting
|
||||||
|
|
||||||
Statically rewriting binaries just once, instead of attempting to translate them
|
Statically rewriting binaries just once, instead of attempting to translate them
|
||||||
at run time, can be a faster alternative. That said, static rewriting is fraught
|
at run time, can be a faster alternative. That said, static rewriting is fraught
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
# counters by Andrea Fioraldi <andreafioraldi@gmail.com>
|
# counters by Andrea Fioraldi <andreafioraldi@gmail.com>
|
||||||
#
|
#
|
||||||
# Copyright 2015, 2016, 2017 Google Inc. All rights reserved.
|
# Copyright 2015, 2016, 2017 Google Inc. All rights reserved.
|
||||||
# Copyright 2019-2023 AFLplusplus Project. All rights reserved.
|
# Copyright 2019-2024 AFLplusplus Project. All rights reserved.
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
@ -132,7 +132,10 @@ echo "Building for CPU target $CPU_TARGET"
|
|||||||
|
|
||||||
# --enable-pie seems to give a couple of exec's a second performance
|
# --enable-pie seems to give a couple of exec's a second performance
|
||||||
# improvement, much to my surprise. Not sure how universal this is..
|
# improvement, much to my surprise. Not sure how universal this is..
|
||||||
|
# --enable-plugins allows loading TCG plugins at runtime, for example to obtain
|
||||||
|
# coverage information, and does not seem to negatively impact performance
|
||||||
QEMU_CONF_FLAGS=" \
|
QEMU_CONF_FLAGS=" \
|
||||||
|
--enable-plugins \
|
||||||
--audio-drv-list= \
|
--audio-drv-list= \
|
||||||
--disable-blobs \
|
--disable-blobs \
|
||||||
--disable-bochs \
|
--disable-bochs \
|
||||||
@ -162,7 +165,6 @@ QEMU_CONF_FLAGS=" \
|
|||||||
--disable-numa \
|
--disable-numa \
|
||||||
--disable-opengl \
|
--disable-opengl \
|
||||||
--disable-parallels \
|
--disable-parallels \
|
||||||
--disable-plugins \
|
|
||||||
--disable-qcow1 \
|
--disable-qcow1 \
|
||||||
--disable-qed \
|
--disable-qed \
|
||||||
--disable-rbd \
|
--disable-rbd \
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
#
|
#
|
||||||
# Written by Andrea Fioraldi <andreafioraldi@gmail.com>
|
# Written by Andrea Fioraldi <andreafioraldi@gmail.com>
|
||||||
#
|
#
|
||||||
# Copyright 2019-2023 Andrea Fioraldi. All rights reserved.
|
# Copyright 2019-2024 Andrea Fioraldi. All rights reserved.
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
#
|
#
|
||||||
# Written by Andrea Fioraldi <andreafioraldi@gmail.com>
|
# Written by Andrea Fioraldi <andreafioraldi@gmail.com>
|
||||||
#
|
#
|
||||||
# Copyright 2019-2023 Andrea Fioraldi. All rights reserved.
|
# Copyright 2019-2024 Andrea Fioraldi. All rights reserved.
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
//
|
//
|
||||||
// Author: Mateusz Jurczyk (mjurczyk@google.com)
|
// Author: Mateusz Jurczyk (mjurczyk@google.com)
|
||||||
//
|
//
|
||||||
// Copyright 2019-2023 Google LLC
|
// Copyright 2019-2024 Google LLC
|
||||||
//
|
//
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
// you may not use this file except in compliance with the License.
|
// you may not use this file except in compliance with the License.
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user