Skip to content

kudu-dynamics/flint

Repository files navigation

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.)

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages