Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
LibAFL — Erweiterte Fuzzing-Bibliothek - Stecken Sie Ihren Fuzzer in Rust zusammen! Skaliert über Kerne und Maschinen hinweg. Für Windows, Android, macOS, Linux, no_std, ... | Kitploit
Tools/GitHubGitHub/aflplusplus/libafl
Penetrationstest-FrameworksDynamische Analyse (Sandboxing)Exploit-FrameworksSchwachstellenanalyseFuzzingBinäranalysePapers & ForschungLernen & Bildung
GitHubaflplusplus/libafl

LibAFL

Erweiterte Fuzzing-Bibliothek - Stecken Sie Ihren Fuzzer in Rust zusammen! Skaliert über Kerne und Maschinen hinweg. Für Windows, Android, macOS, Linux, no_std, ...

Repository anzeigen
2.6k4781vor 3 TagenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

LibAFL, die Fuzzer-Bibliothek

LibAFL logo

Erweiterte Fuzzing-Bibliothek – Setzen Sie Ihre eigenen Fuzzer zusammen und erweitern Sie ihre Funktionen mit Rust.

LibAFL ist eine Sammlung wiederverwendbarer Fuzzer-Komponenten, geschrieben in Rust. Es bietet Ihnen viele Vorteile eines vorgefertigten Fuzzers, ist aber gleichzeitig vollständig anpassbar. Einige derzeitige Highlights sind:

  • schnell: Wir tun alles, was wir zur Kompilierzeit können, um den Laufzeit-Overhead minimal zu halten. Benutzer erreichen 120k Execs/Sek. im Frida-Modus auf einem Telefon (alle Kerne).
  • skalierbar: Low Level Message Passing, kurz LLMP, ermöglicht LibAFL, nahezu linear über Kerne und über TCP auf mehrere Maschinen zu skalieren.
  • anpassbar: Sie können jeden Teil von LibAFL ersetzen. Zum Beispiel ist BytesInput nur eine mögliche Form von Eingabe: Sie können gerne eine AST-basierte Eingabe für strukturiertes Fuzzing hinzufügen und mehr.
  • plattformübergreifend: LibAFL läuft unter Windows, macOS, iOS, Linux und Android und mehr. LibAFL kann im no_std-Modus erstellt werden, um LibAFL in obskure Ziele wie eingebettete Geräte und Hypervisoren zu injizieren.
  • eigenes Ziel mitbringen: Wir unterstützen reine Binärmodi wie den Frida-Modus sowie mehrere Kompilierdurchgänge für quellbasierte Instrumentierung. Natürlich ist es einfach, benutzerdefinierte Instrumentierungs-Backends hinzuzufügen.

Kernkonzepte

LibAFL ist schnell, plattformübergreifend, mit no_std kompatibel und skaliert über Kerne und Maschinen. Es bietet eine Haupt-Crate, die Bausteine für benutzerdefinierte Fuzzer bereitstellt, libafl, eine Bibliothek, die allgemeinen Code für die Zielinstrumentierung enthält, libafl_targets, und eine Bibliothek, die Werkzeuge zum Einwickeln von Compilern bereitstellt, libafl_cc. Es bietet Integrationen mit gängigen Instrumentierungs-Frameworks. Derzeit werden folgende Backends unterstützt:

  • SanitizerCoverage, in libafl_targets
  • Frida, in libafl_frida
  • QEMU im Benutzermodus und Systemmodus, einschließlich Hooks für Emulation, in libafl_qemu
  • TinyInst, in libafl_tinyinst von elbiazo

Bauen und Installieren

Abhängigkeiten installieren

  • Die Rust-Entwicklungssprache
    • Wir empfehlen dringend, nicht z.B. das Paket Ihrer Linux-Distribution zu verwenden, da dieses wahrscheinlich veraltet ist. Installieren Sie Rust daher direkt; Anweisungen finden Sie hier.

    • Die minimal unterstützte Rust-Version ist definiert. Sie können die aktuell benötigte Version in LibAFLs Cargo.toml überprüfen:

      Wenn Ihre installierte Rust-Version älter ist als die in Cargo.toml aufgeführte, aktualisieren Sie auf die neueste stabile Toolchain:

      root@kitploit:~
      rustup update stable
      
  • LLVM-Werkzeuge
    • Die LLVM-Werkzeuge (einschließlich clang, clang++) werden benötigt (neuer als LLVM 15.0.0 bis LLVM 18.1.3). Wenn Sie Debian/Ubuntu verwenden, empfehlen wir auch hier dringend, das Paket von hier zu installieren.
  • Just:
    • Wir verwenden just, um die Fuzzer im fuzzers/-Verzeichnis zu bauen. Installationsanweisungen für Ihre Umgebung finden Sie im Just Programmer's Manual.

Klonen Sie das LibAFL-Repository mit

root@kitploit:~
git clone https://github.com/AFLplusplus/LibAFL

Bauen Sie die Bibliothek mit

root@kitploit:~
cargo build --release

Bauen Sie die API-Dokumentation mit

root@kitploit:~
cargo doc

Durchsuchen Sie das LibAFL-Buch (WIP!) mit (erfordert mdbook)

root@kitploit:~
cd docs && mdbook serve

Erste Schritte

Wir sammeln alle Beispiel-Fuzzer in ./fuzzers. Lesen Sie unbedingt deren Dokumentation (und Quellcode), das ist der natürliche Weg, um loszulegen!

root@kitploit:~
just run

Sie können jeden Beispiel-Fuzzer mit dem folgenden Befehl ausführen, solange das Fuzzer-Verzeichnis eine Justfile-Datei enthält. Der am besten getestete Fuzzer ist ./fuzzers/inprocess/libfuzzer_libpng, ein Multicore-Fuzzer ähnlich wie libfuzzer, der LibAFL für ein libpng-Harness verwendet.

Ressourcen

  • Installationsanleitung
  • Online-API-Dokumentation
  • Das LibAFL-Buch (WIP) online oder im Repository
  • Unser Forschungspaper
  • Unser RC3-Vortrag, der die Kernkonzepte erklärt
  • Unser Fuzzcon Europe-Vortrag mit einer (etwas, aber nicht allzu veralteten) Schritt-für-Schritt-Anleitung zum Bauen einiger Beispiel-Fuzzer
  • Die Fuzzing101-Lösungen und Blogserie von epi
  • Blogbeitrag über die reine Binär-Fuzzing-Bibliothek libaf_qemu, Hacking TMNF – Fuzzing the game server, von RickdeJager.
  • Ein Einführungsworkshop zu LibAFL, von Jordan Whitehead

Mitwirkende

LibAFL wird geschrieben und gewartet von

  • Andrea Fioraldi [email protected]
  • Dominik Maier [email protected]
  • s1341 [email protected]
  • Dongjia Zhang [email protected]
  • Addison Crump [email protected]
  • Romain Malmain [email protected]

Beitragen

Bitte lesen Sie CONTRIBUTING.md für die Richtlinien zum Beitragen.

Debugging

Funktioniert Ihr Fuzzer nicht wie erwartet? Lesen Sie DEBUGGING.md, um zu verstehen, wie Sie Ihre Probleme debuggen können.

Zitieren

Wenn Sie LibAFL für Ihre akademische Arbeit verwenden, zitieren Sie bitte das folgende Paper:

root@kitploit:~
@inproceedings{libafl,
 author       = {Andrea Fioraldi and Dominik Maier and Dongjia Zhang and Davide Balzarotti},
 title        = {{LibAFL: A Framework to Build Modular and Reusable Fuzzers}},
 booktitle    = {Proceedings of the 29th ACM conference on Computer and communications security (CCS)},
 series       = {CCS '22},
 year         = {2022},
 month        = {November},
 location     = {Los Angeles, U.S.A.},
 publisher    = {ACM},
}

Lizenz

Lizenziert unter entweder der Apache License, Version 2.0 oder der MIT-Lizenz, je nach Ihrer Wahl.
Sofern Sie nicht ausdrücklich etwas anderes angeben, wird jeder von Ihnen absichtlich zur Aufnahme in diese Crate eingereichte Beitrag, wie in der Apache-2.0-Lizenz definiert, wie oben dual lizenziert, ohne zusätzliche Bedingungen.
Tool herunterladen