Skip to content

Latest commit

 

History

History
20 lines (16 loc) · 2.16 KB

Multi-core fuzzing.md

File metadata and controls

20 lines (16 loc) · 2.16 KB

ПРОИЗВОДИТЕЛЬНОСТЬ:

Использование множества ядер:

  • Рекомендуется запускать экземпляры с кэшированием тестовых примеров. AFL_TESTCACHE_SIZE, значение между 50-500MB.
  • Перед запуском фазера объявить переменную AFL_FINAL_SYNC=1.

Должен быть один главный фаззер (опция -M main-$HOSTNAME - установите также AFL_FINAL_SYNC=1) и столько вторичных фаззеров (например, -S variant1), сколько у вас ядер, которые вы используете. Каждая запись -M/-S должна иметь уникальное имя (которое может быть любым), однако для всех экземпляров должно использоваться одно и то же местоположение выходного каталога -o.

for i in $(seq 1 19); do
    afl-fuzz -i input_dir -o output_dir -S slave$i -- ./target_binary @@ &
done

Для каждого вторичного фаззера должна быть своя вариация, например:

  • несколько целей, скомпилированы с активированными санитайзерами (export AFL_USE_ASAN=1 ; export AFL_USE_UBSAN=1 ; export AFL_USE_CFISAN=1).
  • один или два должны выполнить проверку цели с помощью CMPLOG/redqueen.
  • от одного до трех фаззеров должны фаззить цель, скомпилированную с помощью laf-intel/COMPCOV (Если запущенно несколько фаззеров laf-intel/COMPCOV, то для чтобы они делились своими промежуточными результатами, главный фаззер (-M) должен быть одним из них (хотя на самом деле это не рекомендуется)).

Монтирование tmpfs:
sudo mount -t tmpfs -o size=6g tmpfs /home/fuzzing