Toolverse
Wszystkie skille

atheris

autor: trailofbits

Fuzzer do testowania kodu Python z przewodnikiem pokrycia i wsparciem dla rozszerzeń C

Instalacja

Wybierz klienta i sklonuj repozytorium do odpowiedniego katalogu skilli.

Instalacja

Szybkie info

Kategoria
Testowanie
Wyświetlenia
4

O skillu

Atheris to narzędzie do fuzzingu kodu Python oparte na libFuzzer. Pozwala testować zarówno czysty kod Python, jak i rozszerzenia C, z wbudowanym wsparciem dla AddressSanitizer do wykrywania błędów pamięci. Wybierz Atheris, gdy chcesz fuzzować kod Python z przewodnikiem pokrycia, testować rozszerzenia C pod kątem uszkodzenia pamięci lub zintegrować się z ekosystemem libFuzzer. Narzędzie działa na Linuksie i macOS, ale Linux jest zalecany ze względu na prostotę i wydajność.

Jak używać

  1. Zainstaluj Atheris za pomocą pip: uruchom polecenie uv pip install atheris. Upewnij się, że masz zainstalowany Python 3.7 lub nowszy oraz aktualną wersję clang.

  2. Utwórz plik Python z funkcją testową oznaczoną dekoratorem @atheris.instrument_func. Funkcja powinna przyjmować parametr data typu bytes i zawierać logikę testową, na przykład sprawdzanie wartości bajtów lub wywoływanie testowanego kodu.

  3. W funkcji main() zainicjuj Atheris za pomocą atheris.Setup(sys.argv, test_one_input), gdzie test_one_input to nazwa twojej funkcji testowej.

  4. Wywołaj atheris.Fuzz() na końcu funkcji main(), aby uruchomić fuzzer z przewodnikiem pokrycia.

  5. Uruchom skrypt poleceniem python nazwa_pliku.py. Fuzzer będzie generować losowe dane wejściowe i szukać błędów, ścieżek powodujących wyjątki lub problemów z pamięcią w kodzie C.

  6. Do pełnego środowiska z wszystkimi zależnościami rozważ użycie Docker. Użyj obrazu Python (np. python:3.11) i zainstaluj clang oraz Atheris wewnątrz kontenera.

Podobne skille