cargo-fuzz
cargo-fuzz is the de facto fuzzing tool for Rust projects using Cargo. Use for fuzzing Rust code with libFuzzer backend.
Installation
Pick a client and clone the repository into its skills directory.
Installation
About this skill
cargo-fuzz is the de facto fuzzing tool for Rust projects using Cargo. Use for fuzzing Rust code with libFuzzer backend.
How to use
Zainstaluj toolchain nightly Rust, który jest wymagany do działania cargo-fuzz. Uruchom
rustup install nightly, a następnie zainstaluj samo narzędzie poleceniemcargo install cargo-fuzz. Sprawdź poprawność instalacji:cargo +nightly --versionicargo fuzz --version.Zainicjuj projekt fuzzingu w katalogu Twojego projektu Rust poleceniem
cargo fuzz init. Narzędzie utworzy strukturę katalogówfuzz/z szablonami harnesów testowych.Otwórz plik
fuzz/fuzz_targets/fuzz_target_1.rsi 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.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.Jeśli fuzzer znajdzie błąd, zapisze przypadek testowy w katalogu
artifacts/. Przeanalizuj ten przypadek, napraw kod i ponownie uruchom fuzzing, aby potwierdzić poprawkę.