A program that uses Blaze to find emergent execution primitives.
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/serverstack build --extra-lib-dirs=/path/to/binaryninja --extra-lib-dirs=/path/to/jdk/lib/server
- Use a single cabal.project file and Cabal flags and conditionals to specify whether to compile -O0 or not.
- Tell projectile to ignore
dist-newstylebuild dir. Also, consider renaming to a hidden folder.
Distribution A. (Approved for public release; distribution unlimited.)