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

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

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

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

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

Категории

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

B2R2

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

Репозиторий
459677 ч 24 мин назадПроверено Kitploit

Популярное

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

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

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

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

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

alt text

B2R2 B2R2

B2R2

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

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

Обзор

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

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

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

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

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

Возможности

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

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

Зависимости

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)
Скачать инструмент
ЦПДокументацияРазбор командДисассемблерПодъёмВосстановление 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:
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: