Skip to content

Генерация фаззинг-оберток в различных форматах #22

@DmitryJustDmitry

Description

@DmitryJustDmitry

В настоящий момент отсутствует единый формат фаззинг-обертки (собственно и едины стандарт фаззера также отсутствует). Нужно добавить в Futag возможность порождать фаззинг-обертки под различные системы фаззинга.

Технические требования

  1. Выбор вида генерации обертки должен осуществляться параметром в классе Generator. Параметр - одно из значений Enum. В настоящий момент следует предусмотреть четыре вида оберток:

1.а. Стандартная обертка libfuzzer / Sydr. Данная обертка является значением по умолчанию.

1.b. Стандартная обертка AFL++ / Crusher.

Входной буффер передаётся в main() через stdin и далее, после преобразования, в тестируемую функцию.

1.c. Стандартная обертка AFL++ / Crusher Persistence Mode. Пример здесь:

Входной буффер передаётся в main() через stdin и далее, после преобразования, в тестируемую функцию, которая обернута в макрос AFL_LOOP.
https://github.com/AFLplusplus/AFLplusplus/blob/stable/instrumentation/README.persistent_mode.md#4-persistent-mode

1.d. Стандартная обертка AFL++ Persistence Mode with Shared Buffer. Пример здесь: https://github.com/AFLplusplus/AFLplusplus/blob/stable/instrumentation/README.persistent_mode.md#2-tldr с учётом https://github.com/AFLplusplus/AFLplusplus/blob/stable/instrumentation/README.persistent_mode.md#5-shared-memory-fuzzing

  1. В качестве основной версии AFL++ рассматриваем текущую (ver. 4.02с). В качестве основного компилятора для AFL-режима - afl-clang-fast (желательно afl-clang-lto).

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionFurther information is requested

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions