Open source binary analysis tools.
Go to file
Luke Maurer 8b0c58c661 Make architecture type families injective
This should cut down on the number of proxies/explicit type arguments
needed when dealing with these types.

Awkwardly, ArchTermStmt isn't injective, because PPC32 and PPC64 happen
to use exactly the same type. We could add an argument to that type and
then all the families could be injective.
2018-10-12 15:23:13 -07:00
base Make architecture type families injective 2018-10-12 15:23:13 -07:00
deps Bump submodules 2018-09-17 15:41:34 -07:00
scripts Remove script for building just these dependencies 2017-05-05 00:13:54 -07:00
symbolic Translate PopCount to Crucible. 2018-09-28 20:25:18 -07:00
x86 Ensure X86 register names are unique 2018-10-03 11:36:44 -07:00
x86_symbolic Add symbolic semantics for X86 sse_ucomis and sse_cvttsx2si. 2018-09-19 18:47:47 -07:00
.gitignore Remove script for building just these dependencies 2017-05-05 00:13:54 -07:00
.gitmodules Fix repo urls 2018-04-25 00:32:43 -07:00
.travis.yml Move macaw stack.yaml to root for similiarity with other Galois packages. 2018-04-24 09:05:36 -07:00
LICENSE Add x86 specific code. 2017-09-27 15:54:43 -07:00
README.md Update README.md 2018-06-15 10:47:27 -07:00
stack.ghc-8.2.2.yaml Update to refactor crucible simulator 2018-07-20 18:53:53 -07:00
stack.yaml Move macaw stack.yaml to root for similiarity with other Galois packages. 2018-04-24 09:05:36 -07: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.