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
).
- Architecture definitions (
-
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
).
- A knowledge database to represent program binaries that can be populated
using third-party tools (
git submodule init
git submodule update --recursive
cargo build