Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
LibAFL — Bibliothèque avancée de Fuzzing - Assemblez votre Fuzzer en Rust ! Passe à l'échelle sur plusieurs cœurs et machines. Pour Windows, Android, MacOS, Linux, no_std, ... | Kitploit
Outils/GitHubGitHub/aflplusplus/libafl
Frameworks de Tests d'IntrusionAnalyse Dynamique (Sandboxing)Frameworks d'ExploitationAnalyse des VulnérabilitésFuzzingAnalyse de BinairesArticles et RechercheApprentissage et Éducation
GitHubaflplusplus/libafl

LibAFL

Bibliothèque avancée de Fuzzing - Assemblez votre Fuzzer en Rust ! Passe à l'échelle sur plusieurs cœurs et machines. Pour Windows, Android, MacOS, Linux, no_std, ...

2.6k4781il y a 1 jourVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Voir le dépôt

LibAFL, la bibliothèque de fuzzing

Logo LibAFL

Bibliothèque de Fuzzing Avancée - Assemblez vos propres fuzzers et étendez leurs fonctionnalités avec Rust.

LibAFL est une collection de morceaux réutilisables de fuzzers, écrite en Rust, qui offre de nombreux avantages d'un fuzzer prêt à l'emploi, tout en étant entièrement personnalisable. Certaines fonctionnalités marquantes incluent actuellement :

  • rapide : Nous faisons tout notre possible au moment de la compilation, minimisant la surcharge à l'exécution. Les utilisateurs atteignent 120k execs/sec en mode frida sur un téléphone (en utilisant tous les cœurs).
  • évolutif : Low Level Message Passing, LLMP en abrégé, permet à LibAFL de s'adapter presque linéairement sur les cœurs, et via TCP à plusieurs machines.
  • adaptable : Vous pouvez remplacer chaque partie de LibAFL. Par exemple, BytesInput n'est qu'une forme possible d'entrée : n'hésitez pas à ajouter une entrée basée sur AST pour le fuzzing structuré, et plus encore.
  • multi-plateforme : LibAFL fonctionne sur Windows, macOS, iOS, Linux et Android, et plus encore. LibAFL peut être compilé en mode no_std pour injecter LibAFL dans des cibles obscures comme les appareils embarqués et les hyperviseurs.
  • apportez votre propre cible : Nous supportons les modes binaires uniquement, comme Frida-Mode, ainsi que plusieurs passes de compilation pour l'instrumentation basée sur le code source. Bien sûr, il est facile d'ajouter des backends d'instrumentation personnalisés.

Concepts fondamentaux

LibAFL est rapide, multi-plateforme, compatible no_std, et s'adapte sur les cœurs et les machines. Il propose une crate principale qui fournit des blocs de construction pour des fuzzers personnalisés, libafl, une bibliothèque contenant du code commun pouvant être utilisé pour l'instrumentation de cibles, libafl_targets, et une bibliothèque fournissant des outils pour encapsuler des compilateurs, libafl_cc. Il offre des intégrations avec des frameworks d'instrumentation populaires. Actuellement, les backends supportés sont :

  • SanitizerCoverage, dans libafl_targets
  • Frida, dans libafl_frida
  • QEMU en mode utilisateur et système, incluant des hooks pour l'émulation, dans libafl_qemu
  • TinyInst, dans libafl_tinyinst par elbiazo

Construction et installation

Installer les dépendances

  • Le langage de développement Rust
    • Nous recommandons vivement de ne pas utiliser par exemple le paquet de votre distribution Linux car il est probablement obsolète. Installez plutôt Rust directement, les instructions se trouvent ici.

    • La version minimale supportée de Rust est définie. Vous pouvez toujours vérifier la version actuellement requise dans le Cargo.toml de LibAFL :

      Si votre version installée de Rust est plus ancienne que celle listée dans Cargo.toml, mettez à jour vers la dernière toolchain stable :

      root@kitploit:~
      rustup update stable
      
  • Outils LLVM
    • Les outils LLVM (incluant clang, clang++) sont nécessaires (plus récents que LLVM 15.0.0 jusqu'à LLVM 18.1.3). Si vous utilisez Debian/Ubuntu, encore une fois, nous recommandons vivement d'installer le paquet depuis ici
  • Just :
    • Nous utilisons just pour construire les fuzzers dans le répertoire fuzzers/. Vous trouverez les instructions pour l'installer dans votre environnement dans le Manuel du Programmeur Just.

Cloner le dépôt LibAFL avec

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

Construire la bibliothèque avec

root@kitploit:~
cargo build --release

Construire la documentation de l'API avec

root@kitploit:~
cargo doc

Parcourir le livre LibAFL (en cours !) avec (nécessite mdbook)

root@kitploit:~
cd docs && mdbook serve

Pour commencer

Nous rassemblons tous les exemples de fuzzers dans ./fuzzers. Assurez-vous de lire leur documentation (et leur code source), c'est la manière naturelle de commencer !

root@kitploit:~
just run

Vous pouvez exécuter chaque exemple de fuzzer avec cette commande, tant que le répertoire du fuzzer contient un fichier Justfile. Le fuzzer le mieux testé est ./fuzzers/inprocess/libfuzzer_libpng, un fuzzer multicœur de type libfuzzer utilisant LibAFL pour un harnais libpng.

Ressources

  • Guide d'installation
  • Documentation de l'API en ligne
  • Le livre LibAFL (en cours) en ligne ou dans le dépôt
  • Notre article de recherche papier
  • Notre présentation RC3 vidéo expliquant les concepts fondamentaux
  • Notre présentation Fuzzcon Europe vidéo avec une discussion (un peu mais pas trop obsolète) étape par étape sur la construction de quelques exemples de fuzzers
  • Les solutions Fuzzing101 solutions & série d'articles de blog articles de blog par epi
  • Article de blog sur le fuzzing binaire uniquement avec la lib libaf_qemu, Hacking TMNF - Fuzzing the game server, par RickdeJager.
  • Un atelier d'introduction à LibAFL, par Jordan Whitehead

Contributeurs

LibAFL est écrit et maintenu par

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

Contribuer

Veuillez consulter CONTRIBUTING.md pour les directives de contribution.

Débogage

Votre fuzzer ne fonctionne pas comme prévu ? Essayez de lire DEBUGGING.md pour comprendre comment déboguer vos problèmes.

Citation

Si vous utilisez LibAFL pour vos travaux académiques, veuillez citer l'article suivant :

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},
}

Licence

Sous licence soit Apache License, Version 2.0 soit licence MIT à votre choix.
Sauf indication contraire explicite de votre part, toute contribution soumise intentionnellement pour inclusion dans cette crate par vous, telle que définie dans la licence Apache-2.0, sera double licenciée comme ci-dessus, sans aucune condition supplémentaire.
Télécharger l’outil