Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/b2r2-org/b2r2
Static AnalysisDynamic Analysis (Sandboxing)Reverse EngineeringFuzzingBinary AnalysisPapers & ResearchLearning & Education
GitHubb2r2-org/b2r2

B2R2

B2R2는 F#으로 작성된 완전 관리형 바이너리 분석 프레임워크입니다. 리버스 엔지니어링, 프로그램 분석, 바이너리 수준 검사를 위한 풍부한 알고리즘, 함수, 도구 세트를 제공합니다.

저장소 보기
45967615시간 17분 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
웹사이트
공유

alt text

B2R2 B2R2

B2R2

B2R2는 F#으로 작성된 완전 관리형 바이너리 분석 프레임워크입니다. 리버스 엔지니어링, 프로그램 분석, 바이너리 수준 검사를 위한 다양한 알고리즘, 함수 및 도구를 제공합니다.

B2R2라는 이름은 스타워즈의 상징적인 로봇인 R2-D2에서 영감을 받았습니다. 원래 B2-R2라는 이름이었으나, .NET 식별자와 네임스페이스는 하이픈을 허용하지 않기 때문에 나중에 하이픈이 없는 B2R2 형태를 채택했습니다. 이 이름은 프로젝트의 목적을 반영합니다. "B"와 "2"는 바이너리 및 2상태 계산을 나타내고, "R"은 리버싱(Reversing)을 의미합니다. 요약하자면, B2R2는 바이너리 리버싱을 위해 만들어졌습니다.

개요

  1. B2R2는 분석에 친화적입니다: 패턴 매칭, 대수 데이터 타입, 표현력이 풍부한 함수형 추상화와 같은 기능 덕분에 프로그램 분석기 구축에 적합한 언어인 F#으로 작성되었습니다.

  2. B2R2는 빠릅니다: 핵심 바이너리 분석 엔진은 효율성을 위해 설계되었으며, 함수형 우선 스타일로 작성되었습니다. 이는 명령어 리프팅 및 CFG 복구와 같은 일반적인 분석 작업에서 순수 병렬성에 자연스럽게 적합합니다.

  3. B2R2는 사용하기 쉽습니다: 완전 관리형 라이브러리로서 복잡한 네이티브 종속성 설정을 피할 수 있습니다. .NET SDK를 설치하기만 하면 바로 사용할 수 있습니다. 기본 지원 덕분에 API를 더 쉽게 탐색할 수 있습니다.

IntelliSense
  • B2R2는 OS에 독립적입니다: Linux, macOS, Windows 및 .NET이 지원하는 다른 모든 플랫폼에서 작동합니다.

  • B2R2는 상호 운용 가능합니다: 단일 프로그래밍 언어에 국한되지 않습니다. 원칙적으로 B2R2 API는 CLI 지원 언어에서 사용할 수 있습니다.

  • 기능

    B2R2는 명령어 파싱, 바이너리 디스어셈블리, 어셈블리, 제어 흐름 복구 및 바이너리 분석을 위한 기타 핵심 구성 요소를 지원합니다. 또한 플랫폼에 구애받지 않는 상태에서 readelf 및 objdump와 유사한 여러 사용자 대상 명령줄 도구를 포함합니다. B2R2는 현재 ELF, PE, Mach-O 및 WebAssembly의 네 가지 바이너리 파일 형식을 지원합니다.

    아래 표는 B2R2에서 현재 지원하는 기능을 요약한 것입니다. 일부 영역은 아직 개발 중이며, 기여를 환영합니다. 풀 리퀘스트를 열기 전에 기여 가이드라인을 반드시 읽어주시기 바랍니다.

    CPU문서명령어 파싱디스어셈블리프팅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/에서 확인할 수 있습니다.

    예제

    B2R2 API를 사용해 보겠습니다.

    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 문을 볼 수 있습니다. 끝입니다! 몇 줄의 F# 코드만으로 Intel 명령어를 리프트했습니다.

    빌드

    B2R2 빌드는 간단합니다. .NET 10 SDK 이상을 설치하면 소스 루트에서 빌드할 준비가 완료됩니다.

    • 릴리스 모드로 B2R2를 빌드하려면 dotnet build -c Release를 실행하세요.

    • 디버그 모드로 B2R2를 빌드하려면 dotnet build를 실행하세요.

    F# 개발 환경 설정에 대한 자세한 내용은 공식 F# 웹사이트(http://fsharp.org/)를 방문하세요.

    크레딧

    B2R2는 KAIST의 SoftSec Lab 연구원들이 KAIST 사이버 보안 연구 센터 (CSRC)와 협력하여 개발했습니다. 전체 기여자 목록은 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를 사용하거나 기반으로 한 논문입니다. 귀하의 작업이 포함되어야 한다면 풀 리퀘스트를 열어 주십시오.

    • EVMpress: 최신 EVM 디컴파일을 위한 정밀 타입 추론, CBT 2025 (PDF)
    • 현대 x86-64 바이너리의 건전한 재조립을 향하여, ASPLOS 2025 (PDF)
    • PoE: 익스플로잇을 위한 도메인 특화 언어, SVCC 2024 (PDF)
    • FunProbe: 확률론적 분석을 통한 바이너리 코드에서 함수 탐지, FSE 2023 (PDF)
    • 보안이 리버스 엔지니어에게 어떤 이점을 주는가? 인텔 CET가 함수 식별에 미치는 영향, DSN 2022 (PDF)
    • Smartian: 정적 및 동적 데이터 흐름 분석을 통한 스마트 컨트랙트 퍼징 강화, ASE 2021 (PDF)
    • NTFuzz: 정적 바이너리 분석을 통한 Windows 커널 퍼징에서 타입 인식 활성화, 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: