Open source binary analysis tools.
Go to file
Kevin Quick 3b5e03122a
[refinement] iterate through unknown transfer failures to resolve
Updates the unknown transfer resolution module to iterate through the
set of blocks with unknown transfer results, attempting to refine the
unknown transfer failures recursively so that any newly discovered
blocks are also attempted (if necessary) and generating a (possibly
updated) DiscoveryState where any refined unknown transfer conditions
replace the original information.

Does not yet perform the actual refinement, just provides the
framework that would attempt to refine each unknown transfer.
2019-01-25 09:43:25 -08:00
base Merge remote-tracking branch 'public/jhx/minor-additions' into jhx/block-addr-removal 2019-01-22 11:32:00 -05:00
deps Fix warnings; crucible changes. 2019-01-22 10:25:45 -05:00
refinement [refinement] iterate through unknown transfer failures to resolve 2019-01-25 09:43:25 -08:00
scripts Fix graphmod script 2018-11-12 09:42:06 -05:00
symbolic Merge remote-tracking branch 'public/master' into jhx/block-addr-removal 2019-01-22 11:12:25 -05:00
x86 Additional exports 2019-01-22 15:51:38 -05:00
x86_symbolic Clean up and document the macaw-symbolic API 2019-01-10 18:20:54 -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