Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
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.

FeedsKontaktDatenschutz© 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 & BildungTop in Fuzzing Nr.10
2.6k47860vor 1 TagVon Kitploit geprüft
GitHub
aflplusplus/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

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

 <img align="right" src="https://raw.githubusercontent.com/AFLplusplus/Website/main/static/libafl_logo.svg" alt="LibAFL logo" width="250" heigh="250">

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](https://github.com/aflplusplus/libafl/blob/main/crates/libafl), eine Bibliothek, die allgemeinen Code für die Zielinstrumentierung enthält, [libafl_targets](https://github.com/aflplusplus/libafl/blob/main/crates/libafl_targets), und eine Bibliothek, die Werkzeuge zum Einwickeln von Compilern bereitstellt, [libafl_cc](https://github.com/aflplusplus/libafl/blob/main/crates/libafl_cc). Es bietet Integrationen mit gängigen Instrumentierungs-Frameworks. Derzeit werden folgende Backends unterstützt:

- `SanitizerCoverage`, in [libafl_targets](https://github.com/aflplusplus/libafl/blob/main/crates/libafl_targets)
- `Frida`, in [libafl_frida](https://github.com/aflplusplus/libafl/blob/main/crates/libafl_frida)
- `QEMU` im Benutzermodus und Systemmodus, einschließlich Hooks für Emulation, in [libafl_qemu](https://github.com/aflplusplus/libafl/blob/main/crates/libafl_qemu)
- `TinyInst`, in [libafl_tinyinst](https://github.com/aflplusplus/libafl/blob/main/crates/libafl_tinyinst) von [elbiazo](https://github.com/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](https://www.rust-lang.org/tools/install).
  - Die minimal unterstützte Rust-Version ist definiert. Sie können die aktuell benötigte Version in LibAFLs [Cargo.toml](https://github.com/AFLplusplus/LibAFL/blob/main/crates/libafl/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:

    ```bash
    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](https://apt.llvm.org/) zu installieren.
- Just:
  - Wir verwenden [just](https://github.com/casey/just), um die Fuzzer im `fuzzers/`-Verzeichnis zu bauen. Installationsanweisungen für Ihre Umgebung finden Sie [im Just Programmer's Manual](https://just.systems/man/en/packages.html).

#### Klonen Sie das `LibAFL`-Repository mit

```sh
git clone https://github.com/AFLplusplus/LibAFL
```

#### Bauen Sie die Bibliothek mit

```sh
cargo build --release
```

#### Bauen Sie die API-Dokumentation mit

```sh
cargo doc
```

#### Durchsuchen Sie das `LibAFL`-Buch (WIP!) mit (erfordert [mdbook](https://rust-lang.github.io/mdBook/index.html))

```sh
cd docs && mdbook serve
```

## Erste Schritte

Wir sammeln alle Beispiel-Fuzzer in [`./fuzzers`](https://github.com/aflplusplus/libafl/blob/main/fuzzers). Lesen Sie unbedingt deren Dokumentation (und Quellcode), das ist *der natürliche Weg, um loszulegen!*

```sh
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`](https://github.com/aflplusplus/libafl/blob/main/fuzzers/inprocess/libfuzzer_libpng), ein Multicore-Fuzzer ähnlich wie libfuzzer, der `LibAFL` für ein libpng-Harness verwendet.

### Ressourcen

- [Installationsanleitung](https://github.com/aflplusplus/libafl/blob/main/docs/src/getting_started/setup.md)
- [Online-API-Dokumentation](https://docs.rs/libafl/)
- Das `LibAFL`-Buch (WIP) [online](https://aflplus.plus/libafl-book) oder im [Repository](https://github.com/aflplusplus/libafl/blob/main/docs/src)
- Unser Forschungs[paper](https://www.s3.eurecom.fr/docs/ccs22_fioraldi.pdf)
- Unser RC3-[Vortrag](http://www.youtube.com/watch?v=3RWkT1Q5IV0 "Fuzzers Like LEGO"), der die Kernkonzepte erklärt
- Unser Fuzzcon Europe-[Vortrag](https://www.youtube.com/watch?v=PWB8GIhFAaI "LibAFL: The Advanced Fuzzing Library") mit einer (etwas, aber nicht allzu veralteten) Schritt-für-Schritt-Anleitung zum Bauen einiger Beispiel-Fuzzer
- Die Fuzzing101-[Lösungen](https://github.com/epi052/fuzzing-101-solutions) und Blog[serie](https://epi052.gitlab.io/notes-to-self/blog/2021-11-01-fuzzing-101-with-libafl/) von [epi](https://github.com/epi052)
- Blogbeitrag über die reine Binär-Fuzzing-Bibliothek `libaf_qemu`, [Hacking TMNF – Fuzzing the game server](https://blog.bricked.tech/posts/tmnf/part1/), von [RickdeJager](https://github.com/RickdeJager).
- [Ein Einführungsworkshop zu LibAFL](https://www.atredis.com/blog/2023/12/4/a-libafl-introductory-workshop), von [Jordan Whitehead](https://github.com/jordan9001)

## Mitwirkende

`LibAFL` wird geschrieben und gewartet von

- [Andrea Fioraldi](https://twitter.com/andreafioraldi) <[email protected]>
- [Dominik Maier](https://bsky.app/profile/dmnk.bsky.social) <[email protected]>
- [s1341](https://twitter.com/srubenst1341) <[email protected]>
- [Dongjia Zhang](https://github.com/tokatoka) <[email protected]>
- [Addison Crump](https://github.com/addisoncrump) <[email protected]>
- [Romain Malmain](https://github.com/rmalmain) <[email protected]>

## Beitragen

Bitte lesen Sie **[CONTRIBUTING.md](https://github.com/aflplusplus/libafl/blob/main/CONTRIBUTING.md)** für die Richtlinien zum Beitragen.

## Debugging

Funktioniert Ihr Fuzzer nicht wie erwartet? Lesen Sie [DEBUGGING.md](https://github.com/aflplusplus/libafl/blob/main/docs/src/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:

```bibtex
@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

<sup>
Lizenziert unter entweder der <a href="https://github.com/aflplusplus/libafl/blob/main/LICENSE-APACHE">Apache License, Version 2.0</a> oder der <a href="https://github.com/aflplusplus/libafl/blob/main/LICENSE-MIT">MIT-Lizenz</a>, je nach Ihrer Wahl.
</sup>

<br>

<sub>
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.
</sub>
Tool herunterladen