Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
LibAFL — Продвинутая библиотека для фаззинга - Соберите свой фаззер на Rust! Масштабируется на несколько ядер и машин. Для Windows, Android, MacOS, Linux, no_std, ... | Kitploit
Инструменты/GitHubGitHub/aflplusplus/libafl
Фреймворки для пентестаДинамический анализ (песочница)Фреймворки для эксплойтовАнализ уязвимостейФаззингАнализ Бинарных ФайловСтатьи и ИсследованияОбучение и Образование
GitHubaflplusplus/libafl

LibAFL

Продвинутая библиотека для фаззинга - Соберите свой фаззер на Rust! Масштабируется на несколько ядер и машин. Для Windows, Android, MacOS, Linux, no_std, ...

Репозиторий
2.6k47813 дней назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

LibAFL, библиотека для фаззинга

Логотип LibAFL

Продвинутая библиотека для фаззинга — собирайте собственные фаззеры и расширяйте их возможности с помощью Rust.

LibAFL — это набор переиспользуемых компонентов фаззеров, написанный на Rust, который предоставляет многие преимущества готового фаззера, оставаясь при этом полностью настраиваемым. Некоторые ключевые особенности включают:

  • fast: мы делаем всё возможное на этапе компиляции, сводя к минимуму накладные расходы во время выполнения. Пользователи достигают 120k execs/sec в режиме frida на телефоне (используя все ядра).
  • scalable: Low Level Message Passing (сокращённо LLMP) позволяет LibAFL масштабироваться почти линейно на ядрах и через TCP на множество машин.
  • adaptable: вы можете заменить любую часть LibAFL. Например, BytesInput — это лишь одна из возможных форм входных данных: не стесняйтесь добавлять входные данные на основе AST для структурированного фаззинга и многое другое.
  • multi platform: LibAFL работает на Windows, macOS, iOS, Linux, Android и других платформах. LibAFL может быть собран в режиме no_std для внедрения в редкие цели, такие как встраиваемые устройства и гипервизоры.
  • bring your own target: мы поддерживаем режимы только с бинарными файлами, такие как Frida-Mode, а также несколько этапов компиляции для инструментирования на основе исходного кода. Конечно, легко добавить пользовательские бэкенды инструментирования.

Основные концепции

LibAFL быстрый, кроссплатформенный, совместимый с no_std и масштабируется на ядра и машины. Он предлагает основной крейт, предоставляющий строительные блоки для пользовательских фаззеров: libafl, библиотеку, содержащую общий код, который может использоваться для инструментирования целей: libafl_targets, и библиотеку, предоставляющую средства для обёртывания компиляторов: libafl_cc. Он предлагает интеграции с популярными фреймворками инструментирования. На данный момент поддерживаются следующие бэкенды:

  • SanitizerCoverage, в libafl_targets
  • Frida, в libafl_frida
  • QEMU в пользовательском и системном режиме, включая хуки для эмуляции, в libafl_qemu
  • TinyInst, в libafl_tinyinst от elbiazo

Сборка и установка

Установка зависимостей

  • Язык разработки Rust
    • Мы настоятельно рекомендуем не использовать, например, пакет из вашего дистрибутива Linux, так как он, скорее всего, устарел. Вместо этого установите Rust напрямую, инструкции можно найти здесь.

    • Минимальная поддерживаемая версия Rust определена. Вы всегда можете проверить текущую требуемую версию в Cargo.toml LibAFL:

      root@kitploit:~
      rustup update stable
      
  • Инструменты LLVM
    • Инструменты LLVM (включая clang, clang++) необходимы (новее LLVM 15.0.0 до LLVM 18.1.3). Если вы используете Debian/Ubuntu, мы снова настоятельно рекомендуем установить пакет отсюда
  • Just:
    • Мы используем just для сборки фаззеров в каталоге fuzzers/. Инструкции по установке в вашем окружении можно найти в руководстве программиста Just.

Клонирование репозитория LibAFL

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

Сборка библиотеки с помощью

root@kitploit:~
cargo build --release

Сборка документации API с помощью

root@kitploit:~
cargo doc

Просмотр книги LibAFL (в разработке!) с помощью (требуется mdbook)

root@kitploit:~
cd docs && mdbook serve

Начало работы

Мы собрали все примеры фаззеров в ./fuzzers. Обязательно прочитайте их документацию (и исходный код) — это естественный способ начать работу!

root@kitploit:~
just run

Вы можете запустить каждый пример фаззера с помощью следующей команды, если в каталоге фаззера есть файл Justfile. Наиболее протестированный фаззер — ./fuzzers/inprocess/libfuzzer_libpng, многопоточный фаззер, похожий на libfuzzer, использующий LibAFL для обвязки libpng.

Ресурсы

  • Руководство по установке
  • Онлайн-документация API
  • Книга LibAFL (в разработке) онлайн или в репозитории
  • Наша исследовательская статья
  • Наше выступление на RC3 talk с объяснением основных концепций
  • Наше выступление на Fuzzcon Europe talk с (немного, но не слишком устаревшим) пошаговым обсуждением создания некоторых примеров фаззеров
  • Решения Fuzzing101 и серия блог-постов от epi
  • Пост в блоге о библиотеке для фаззинга только бинарников libaf_qemu: Hacking TMNF - Fuzzing the game server, от RickdeJager
  • Вводный семинар по LibAFL, от Jordan Whitehead

Авторы

LibAFL написан и поддерживается

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

Вклад в развитие

Пожалуйста, ознакомьтесь с CONTRIBUTING.md для получения руководства по внесению вклада.

Отладка

Ваш фаззер работает не так, как ожидалось? Попробуйте прочитать DEBUGGING.md, чтобы понять, как отлаживать ваши проблемы.

Цитирование

Если вы используете LibAFL в своей академической работе, пожалуйста, процитируйте следующую статью:

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

Лицензия

Лицензировано на условиях Apache License, Version 2.0 или лицензии MIT по вашему выбору.
Если явно не указано иное, любой вклад, намеренно предоставленный вами для включения в этот крейт, как определено в лицензии Apache-2.0, будет двойным лицензирован, как указано выше, без каких-либо дополнительных условий.
Скачать инструмент