Project

General

Profile

Fuzzing Spike » History » Version 1

Egor Zheliba, 02/10/2025 03:05 AM

1 1 Egor Zheliba
h1. Fuzzing Spike
2
3
1. Переходим в корневую директорию проекта oss-fuzz:
4
5
<pre>
6
cd /path/to/oss-fuzz
7
</pre>
8
9
2. Собираем образ для проекта *spike*:
10
11
<pre>
12
python3 infra/helper.py build_image spike
13
</pre>
14
15
3. Компилируем фаззер:
16
17
<pre>
18
python3 infra/helper.py build_fuzzers --sanitizer <address/memory/undefined> --engine libfuzzer --architecture x86_64 spike
19
</pre>
20
21
или, например, для aarch64:
22
23
<pre>
24
python3 infra/helper.py build_fuzzers --sanitizer <address/memory/undefined> --engine libfuzzer --architecture aarch64 spike
25
</pre>
26
27
Параметры:
28
* --sanitizer <address/memory/undefined> – опциональный флаг, можно выбрать нужный санитайзер.
29
* --architecture <x86_64/aarch64> – целевая архитектура (по умолчанию x86_64).
30
31
Если сборка прошла успешно, в директории build/out/spike появится исполняемый файл (фаззер).
32
33
4. Запуск фаззинга:
34
35
<pre>
36
python3 infra/helper.py run_fuzzer --architecture x86_64 spike spike_fuzzer
37
</pre>
38
39
Параметр --architecture также можно не указывать (по умолчанию x86_64).
40
41
При запуске начнётся процесс фаззинга. Тест-мутанты, давшие новое покрытие, сохраняются в директории oss-fuzz/build/out/spike/new_coverage.