Skip to content

Latest commit

 

History

History
50 lines (34 loc) · 1.72 KB

File metadata and controls

50 lines (34 loc) · 1.72 KB

Flint

A program that uses Blaze to find emergent execution primitives.

Dependencies

The repository structure of Flint assumes that the repositories for the following dependencies are located adjacently:

For example:

.
├── flint
├── blaze
├── binaryninja-haskell
├── ghidra-haskell
└── binary-analysis

Flint can be compiled using either cabal or stack.

Flint uses Blaze for its binary lifting and analysis, which supports both binaryninja and ghidra as backends.

The binaryninja backend requires a headless version of Binary Ninja to be installed, which provides libbinaryninjacore.so.

The ghidra backend a Java Development Kit (JDK) to be installed. See the binaryninja-haskell installation instructions.

Each of these dependencies can be specified at build time using the --extra-lib-dirs flag.

For example:

  • cabal build --extra-lib-dirs=/path/to/binaryninja --extra-lib-dirs=/path/to/jdk/lib/server
  • stack build --extra-lib-dirs=/path/to/binaryninja --extra-lib-dirs=/path/to/jdk/lib/server

To-do

  • Use a single cabal.project file and Cabal flags and conditionals to specify whether to compile -O0 or not.
  • Tell projectile to ignore dist-newstyle build dir. Also, consider renaming to a hidden folder.

Distribution A. (Approved for public release; distribution unlimited.)