#fugue #instructions #framework #fugue-ir

fugue-ir

A binary analysis framework written in Rust

15 releases

new 0.2.102 May 6, 2025
0.2.100 Feb 6, 2025
0.2.98 Dec 23, 2024
0.2.95 Oct 28, 2024
0.2.89 May 26, 2023

#4 in #fugue

Download history 145/week @ 2025-01-13 260/week @ 2025-01-20 52/week @ 2025-01-27 192/week @ 2025-02-03 98/week @ 2025-02-10 70/week @ 2025-02-17 79/week @ 2025-02-24 70/week @ 2025-03-03 70/week @ 2025-03-10 34/week @ 2025-03-17 83/week @ 2025-03-24 32/week @ 2025-03-31 83/week @ 2025-04-07 36/week @ 2025-04-14 38/week @ 2025-04-21 220/week @ 2025-04-28

380 downloads per month
Used in 25 crates (5 directly)

MIT and maybe LGPL-3.0+

1MB
23K SLoC

Fugue logo

Fugue Binary Analysis Framework

DOI

Fugue is a binary analysis framework in the spirit of B2R2 and BAP, with a focus on providing reusable components to rapidly prototype new binary analysis tools and techniques.

Fugue is built around a core collection of crates, i.e., fugue-core. These crates provide a number of fundamental capabilities:

  • Data structures and types:

    • Architecture definitions (fugue-arch).
    • Bit vectors (fugue-bv).
    • Floating point numbers (fugue-fp).
    • Endian-aware conversion to and from various primitive types (fugue-bytes).
  • Program representations and abstractions:

    • A knowledge database to represent program binaries that can be populated using third-party tools (fugue-db).
    • Disassembly and lifting to intermediate representations (fugue-ir).

Prerequisites

git submodule init
git submodule update --recursive

Build

cargo build

Dependencies

~4–12MB
~122K SLoC