Фаззинг библиотеки на языке Python.
В качестве целевой выбрана функция load()
из библиотеки pdfquery
.
Обёртка над функцией - testpdf.py
Подробнее про фаззинг приложений на языке Python - см. раздел "Инструментация Python" в документации к Crusher.
- Необходимо дополнительно установить atheris (с применением соответствующих патчей) в python фаззера:
/path/to/crusher/tools/install_atheris.sh
- Необходимо установить библиотеки pdfquery и six в python фаззера:
/path/to/crusher/bin_x86-64/python-3.9_x86_64/bin/pip3 install pdfquery six
Находясь в данной директории, запустите скрипт ./fuzz.sh
;
он принимает один аргумент - путь до fuzz_manager
.
Запустите в другом терминале UI
фаззера (укажите актуальные пути):
/path/to/crusher/bin_x86-64/ui --outdir /path/to/out
Как только будут найдены аварийные завершения, значение поля unique_crashes
(в окне UI
- наверху справа) станет ненулевым.
Прервать фаззинг (в первом терминале, Ctrl + С
)