Toolverse
Wszystkie skille

cargo-fuzz

autor: trailofbits

Testuj kod Rust na błędy z libFuzzer – narzędzie fuzzing zintegrowane z Cargo

Instalacja

Wybierz klienta i sklonuj repozytorium do odpowiedniego katalogu skilli.

Instalacja

Szybkie info

Kategoria
Backend
Wyświetlenia
4

O skillu

cargo-fuzz to standardowe narzędzie do fuzzingu projektów Rust opartych na Cargo. Automatycznie włącza flagi kompilacji i obsługuje sanitizery takie jak AddressSanitizer, co pozwala szybko wykrywać błędy w kodzie. Wybierz cargo-fuzz, jeśli chcesz prostą konfigurację bez zbędnych komplikacji – narzędzie działa najlepiej z projektami strukturyzowanymi jako biblioteki Rust.

Jak używać

  1. Zainstaluj toolchain nightly Rust, który jest wymagany do działania cargo-fuzz. Uruchom rustup install nightly, a następnie zainstaluj samo narzędzie poleceniem cargo install cargo-fuzz. Sprawdź poprawność instalacji: cargo +nightly --version i cargo fuzz --version.

  2. Zainicjuj projekt fuzzingu w katalogu Twojego projektu Rust poleceniem cargo fuzz init. Narzędzie utworzy strukturę katalogów fuzz/ z szablonami harnesów testowych.

  3. Otwórz plik fuzz/fuzz_targets/fuzz_target_1.rs i napisz harnes – funkcję, która będzie testować Twój kod. Harnes powinien przyjmować losowe dane wejściowe (&[u8]) i wywoływać funkcje z Twojego projektu, które chcesz testować pod kątem błędów.

  4. Uruchom fuzzing poleceniem cargo +nightly fuzz run fuzz_target_1. Narzędzie będzie generować losowe dane wejściowe i szukać błędów, takich jak paniki, naruszenia pamięci czy problemy z bezpieczeństwem. Proces będzie działać aż do znalezienia błędu lub przerwania przez użytkownika.

  5. Jeśli fuzzer znajdzie błąd, zapisze przypadek testowy w katalogu artifacts/. Przeanalizuj ten przypadek, napraw kod i ponownie uruchom fuzzing, aby potwierdzić poprawkę.

Podobne skille