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

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

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

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

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

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/b2r2-org/b2r2
Статический анализДинамический анализ (песочница)Обратная инженерияФаззингАнализ Бинарных ФайловСтатьи и ИсследованияОбучение и Образование
GitHubb2r2-org/b2r2

B2R2

B2R2 — это полностью управляемый фреймворк для анализа бинарного кода, написанный на F#. Он предоставляет богатый набор алгоритмов, функций и инструментов для реверс-инжиниринга, анализа программ и инспекции на уровне бинарного кода.

Репозиторий
4596778 ч 11 мин назадПроверено Kitploit
Сайт

Популярное

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

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

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

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

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

alt text

B2R2 B2R2

B2R2

B2R2 — это полностью управляемый фреймворк для бинарного анализа, написанный на F#. Он предоставляет богатый набор алгоритмов, функций и инструментов для реверс-инжиниринга, анализа программ и инспекции на бинарном уровне.

Название B2R2 вдохновлено R2-D2, культовым роботом из «Звёздных войн». Изначально проект назывался B2-R2, но позже принял форму без дефиса B2R2, поскольку идентификаторы и пространства имён .NET не допускают дефисов. Название отражает назначение проекта: «B» и «2» намекают на бинарность и двухсостоятельные вычисления, а «R» означает реверсинг. Короче говоря, B2R2 создан для бинарного реверс-инжиниринга.

Обзор

  1. B2R2 удобен для анализа: он написан на F# — языке, отлично подходящем для построения анализаторов программ благодаря таким возможностям, как сопоставление с образцом, алгебраические типы данных и выразительные функциональные абстракции.

  • B2R2 быстр: его ядро бинарного анализа спроектировано для эффективности и написано в стиле функциональность прежде всего. Это делает его естественным выбором для чистого параллелизма в типовых задачах анализа, таких как подъём инструкций и восстановление CFG.

  • B2R2 прост в использовании: будучи полностью управляемой библиотекой, он избавляет от сложной настройки нативных зависимостей. Установите .NET SDK — и всё готово. Встроенная поддержка IntelliSense также упрощает изучение API.

  • B2R2 независим от ОС: он работает на Linux, macOS и Windows, а также на любых других платформах, поддерживаемых .NET.

  • B2R2 интероперабелен: он не привязан к одному языку программирования. В принципе, API B2R2 можно использовать из любого языка, поддерживаемого CLI.

  • Возможности

    B2R2 поддерживает разбор инструкций, бинарную дизассембляцию, ассемблирование, восстановление потока управления и другие базовые строительные блоки для бинарного анализа. Он также включает несколько пользовательских инструментов командной строки, сравнимых с readelf и objdump, оставаясь при этом платформенно-независимым. В настоящее время B2R2 поддерживает четыре формата бинарных файлов: ELF, PE, Mach-O и WebAssembly.

    В таблице ниже приведены возможности, поддерживаемые B2R2. Некоторые области всё ещё находятся в разработке, и вклад приветствуется. Перед открытием pull request обязательно прочитайте наше руководство по внесению вклада.

    ЦПДокументацияРазбор командДисассемблерПодъёмВосстановление CFGАссемблер
    x86:full_moon::full_moon::full_moon::full_moon::full_moon::full_moon:
    x86-64:full_moon::full_moon::full_moon::full_moon::full_moon::full_moon:
    ARMv7:full_moon::full_moon::full_moon::full_moon::first_quarter_moon::new_moon:
    ARMv8 (AArch64):full_moon::full_moon::full_moon::full_moon::first_quarter_moon::new_moon:
    MIPS32:full_moon::full_moon::full_moon::full_moon::first_quarter_moon::new_moon:
    MIPS64:full_moon::full_moon::full_moon::full_moon::first_quarter_moon::new_moon:
    EVM:full_moon::full_moon::full_moon::full_moon::full_moon::new_moon:
    TMS320C6000:full_moon::full_moon::full_moon::new_moon::first_quarter_moon::new_moon:

    Зависимости

    B2R2 намеренно минимизирует количество зависимостей, чтобы упростить сборку и сосредоточить ядро на эффективных алгоритмах и структурах данных для бинарного анализа. Основная библиотека не имеет внешних зависимостей, а большинство внешних библиотек являются опциональными и используются только в определённых компонентах или инструментах. Ниже приведён список внешних библиотек, используемых в проекте.

    • System.IO.Hashing
    • FSharp.Compiler.Service
    • FParsec
    • BenchmarkDotNet
    • Avalonia.FuncUI

    Документация по API

    Документация создаётся с помощью fsdocs и доступна по адресу https://b2r2.org/B2R2/.

    Пример

    Попробуем использовать API B2R2.

    1. Сначала создайте пустую директорию с именем DIRNAME:

      root@kitploit:~
      mkdir DIRNAME
      cd DIRNAME
      
    2. Затем создайте пустой консольный проект с помощью утилиты командной строки dotnet:

      root@kitploit:~
      $ dotnet new console -lang F#
      
    3. Добавьте пакет NuGet B2R2.FrontEnd.API в проект:

      root@kitploit:~
      $ dotnet add package B2R2.FrontEnd.API
      
    4. Отредактируйте файл Program.fs в вашем любимом редакторе следующим образом:

      root@kitploit:~
      open B2R2
      open B2R2.FrontEnd
      
      [<EntryPoint>]
      let main argv =
        let isa = ISA "amd64"
        let bytes = [| 0x65uy; 0xffuy; 0x15uy; 0x10uy; 0x00uy; 0x00uy; 0x00uy |]
        let hdl = BinHandle(bytes, isa)
        let lifter = hdl.NewLiftingUnit()
        let ins = lifter.ParseInstruction 0UL // parse the instruction at offset 0
        lifter.LiftInstruction ins |> printfn "%A"
        0
      
    5. Запустите его командой dotnet run. Вы должны увидеть поднятые IR-утверждения в консоли. Вот и всё! Вы только что подняли инструкцию Intel всего несколькими строками кода на F#.

    Сборка

    Собрать B2R2 очень просто. Установите .NET 10 SDK или новее, и вы готовы к сборке из корневой директории исходников.

    • Для сборки B2R2 в режиме release выполните dotnet build -c Release.

    • Для сборки B2R2 в режиме debug выполните dotnet build.

    Для получения дополнительной информации о настройке среды разработки F# посетите официальный сайт F#: http://fsharp.org/.

    Авторы

    B2R2 разработан участниками SoftSec Lab в KAIST в сотрудничестве с Исследовательским центром кибербезопасности (CSRC) в KAIST. Полный список участников см. в AUTHORS.md.

    Цитирование

    Если вы используете B2R2 в своих исследованиях, пожалуйста, рассмотрите возможность цитирования нашей статьи:

    root@kitploit:~
    @INPROCEEDINGS{jung:bar:2019,
      author = {Minkyu Jung and Soomin Kim and HyungSeok Han and Jaeseung Choi and Sang Kil Cha},
      title = {{B2R2}: Building an Efficient Front-End for Binary Analysis},
      booktitle = {Proceedings of the NDSS Workshop on Binary Analysis Research},
      year = 2019
    }
    

    Руководство

    Для B2R2 доступно онлайн-руководство, охватывающее основы использования B2R2 и содержащее практические примеры. Ознакомьтесь с ним по следующей ссылке: https://b2r2.org/tutorial-icst2026/.

    Публикации

    Ниже перечислены статьи, в которых используется или развивается B2R2. Если ваша работа должна быть включена, пожалуйста, откройте pull request.

    • EVMpress: Precise Type Inference for Next-Generation EVM Decompilation, CBT 2025 (PDF)
    • Towards Sound Reassembly of Modern x86-64 Binaries, ASPLOS 2025 (PDF)
    • PoE: A Domain-Specific Language for Exploitation, SVCC 2024 (PDF)
    • FunProbe: Probing Functions from Binary Code through Probabilistic Analysis, FSE 2023 (PDF)
    • How'd Security Benefit Reverse Engineers? The Implication of Intel CET on Function Identification, DSN 2022 (PDF)
    • Smartian: Enhancing Smart Contract Fuzzing with Static and Dynamic Data-Flow Analyses, ASE 2021 (PDF)
    • NTFuzz: Enabling Type-Aware Kernel Fuzzing on Windows with Static Binary Analysis, Oakland 2021 (PDF)
    Скачать инструмент
    AVR:full_moon::full_moon::full_moon::full_moon::first_quarter_moon::new_moon:
    PA-RISC:full_moon::full_moon::full_moon::new_moon::first_quarter_moon::new_moon:
    PPC32:full_moon::full_moon::full_moon::full_moon::first_quarter_moon::new_moon:
    SPARC:full_moon::full_moon::full_moon::full_moon::first_quarter_moon::new_moon:
    SH4:full_moon::full_moon::full_moon::new_moon::first_quarter_moon::new_moon:
    RISC-V:full_moon::full_moon::full_moon::full_moon::first_quarter_moon::new_moon:
    S390:full_moon::full_moon::full_moon::new_moon::first_quarter_moon::new_moon: