#framework #fugue

fugue

A binary analysis framework written in Rust

3 unstable releases

0.2.9 Jan 20, 2025
0.2.8 May 9, 2023
0.1.0 Jun 13, 2021

#319 in Cryptography

Download history 111/week @ 2024-12-10 97/week @ 2024-12-17 20/week @ 2024-12-24 15/week @ 2024-12-31 107/week @ 2025-01-07 194/week @ 2025-01-14 167/week @ 2025-01-21 53/week @ 2025-01-28 42/week @ 2025-02-04 58/week @ 2025-02-11 53/week @ 2025-02-18 62/week @ 2025-02-25 69/week @ 2025-03-04 60/week @ 2025-03-11 32/week @ 2025-03-18 63/week @ 2025-03-25

232 downloads per month
Used in 18 crates (16 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

~10–23MB
~339K SLoC