prog:clang-fuzzer
Super Awesome Fuzzing, Part One Archive du 22/06/2017 le 13/02/2020
Il faut créer un fichier source qui ne contient qu'une seule fonction. La fonction main
est dans l'archive statique libFuzzer.a
.
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size);
L'option de compilation -fsanitize=fuzzer
est obligatoire mais il peut être utile de rajouter -fno-omit-frame-pointer -g -fsanitize=address,undefined
.
clang++ -fno-omit-frame-pointer -fno-sanitize-recover=all -g -fsanitize=address,undefined,fuzzer fuzz_me.cc
Messages d'erreur
- error adding symbols: DSO missing from command line
Il faut rajouter -lgcc_s
.
Pour aller plus loin, même si ça possède de nombreuses fonctionnalités, je préfère afl mais une étude comparative va finir par s'imposer. Archive du 27/09/2020 le 13/02/2020
prog/clang-fuzzer.txt · Dernière modification : 2024/11/12 12:33 de root