Open source binary analysis tools.
Go to file
Kevin Quick 03e48c7baf
[base] Add external TermStmt Rewriter capability.
The caller (e.g. macaw-refinement) can provide an additional Rewriter
operation that can operate on TermStmts for blocks (typically those
for which a previous Discovery was unable to determine a transfer
target).  There is an additional
entrypoint ('addDiscoveredFunctionBlockTargets') that will allow this
additional rewriter to be supplied for updating an existing
DiscoveryState.
2019-02-06 17:41:40 -08:00
base [base] Add external TermStmt Rewriter capability. 2019-02-06 17:41:40 -08:00
deps Fix warnings; crucible changes. 2019-01-22 10:25:45 -05:00
refinement [refinement] Provide list of forward path blocks to smt solving. 2019-02-01 00:17:03 -08:00
scripts Fix graphmod script 2018-11-12 09:42:06 -05:00
symbolic Add Crucible translation of block paths. 2019-01-31 21:48:44 -08:00
x86 Additional exports 2019-01-22 15:51:38 -05:00
x86_symbolic Add register lookup and update functions in X86 ArchVals. 2019-01-29 01:22:27 -08:00
.gitignore Update gitignore. 2019-01-22 23:46:33 -08:00
.gitmodules Fix repo urls 2018-04-25 00:32:43 -07:00
.travis.yml Fix travis builds. 2018-11-12 09:58:10 -05:00
LICENSE Add x86 specific code. 2017-09-27 15:54:43 -07:00
README.md Delete top-level stack.yaml symlink 2018-10-30 16:12:16 -07:00
stack.ghc-8.2.2.yaml Fix warnings; crucible changes. 2019-01-22 10:25:45 -05:00

This is the main repository for the Macaw binary analysis framework. This framework is implemented to offer extensible support for architectures.

The main algorithm implemented so far is a code discovery procedure which will discover reachable code in the binary given one or more entry points such as _start or the current symbols.

The core libraries are:

  • macaw-base -- The core architecture-independent operations and algorithms.
  • macaw-symbolic -- Library that provides symbolic simulation of Macaw programs via Crucible.
  • macaw-x86 -- Provides definitions enabling Macaw to be used on X86_64 programs.
  • macaw-x86-symbolic -- Adds Macaw-symbolic extensions needed to support x86.

The libraries that make up Macaw are released under the BSD license.

To build with Stack, first create a top-level stack.yaml file by symlinking to one of the provided stack-ghc-<version>.yaml files. E.g.

ln -s stack-ghc-8.2.yaml stack.yaml
stack build