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

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

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

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

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

Категории

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

LibAFL

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

Репозиторий

Популярное

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

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

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

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

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

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

Логотип LibAFL

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

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

  • fast: мы делаем всё возможное на этапе компиляции, сводя к минимуму накладные расходы во время выполнения. Пользователи достигают 120k execs/sec в режиме frida на телефоне (используя все ядра).
  • scalable: Low Level Message Passing (сокращённо LLMP) позволяет LibAFL масштабироваться почти линейно на ядрах и через TCP на множество машин.
  • adaptable: вы можете заменить любую часть . Например, — это лишь одна из возможных форм входных данных: не стесняйтесь добавлять входные данные на основе AST для структурированного фаззинга и многое другое.
LibAFL
BytesInput
  • 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, будет двойным лицензирован, как указано выше, без каких-либо дополнительных условий.
    Скачать инструмент