AFLplusplus / AFLplusplus/LibAFL

Which Observer/Feedback Combination Should I Use for Coverage Guidance?

Ouverte
#2,708 5 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
Rust
Étoiles
2.6k
Forks
481
Merge moyen
2 j 30 min
PR mergées (30 j)
16

Description

I'm confused as to which combination of `MapObserver`s and `Feedback`s I should use. Is there a good overview of what the different options do/how to combine them? I have found some ways to accomplish *some* progress, but I feel like I might be missing something. Sorry if this is a stupid question.

I'm collecting coverage based on clang's `-fsanitize-coverage=trace-pc-guard`. The implementation of the two functions is a simple set or counter logic, redirected into some shared memory to get coverage back to the fuzzer:

```c
void __sanitizer_cov_trace_pc_guard_init(uint32_t *start, uint32_t *stop)
{
if (start == stop)
{
return;
};

guard_start = start;
guard_stop = stop;

memset(guard_start, 0, guard_stop - guard_start);
}

void __sanitizer_cov_trace_pc_guard(uint32_t *guard)
{
if (!cov_shmem_init) return; // ignore coverage before initialization
// *(guard - guard_start cov_shmem_ptr) = 1; // set
*(guard - guard_start cov_shmem_ptr) += 1; // counter
}

```

In the fuzzer, I have a `ShMem` object that contains the coverage data. How do I process it?

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

No source file or test is named; start by tracing the MapObserver, Feedback, and ShMem coverage-processing APIs in LibAFL and compare them with the clang trace-pc-guard data described here. Done means documenting what the available observer and feedback options do, how they combine, and how to process the shared-memory coverage.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
c, rust
Domaine
documentation, testing-qa
Type d'issue
Documentation
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
À clarifier
Accessibilité débutants
25/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.