mirror of
https://github.com/GaloisInc/macaw.git
synced 2024-11-28 01:35:33 +03:00
Open source binary analysis tools.
3b5e03122a
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. |
||
---|---|---|
base | ||
deps | ||
refinement | ||
scripts | ||
symbolic | ||
x86 | ||
x86_symbolic | ||
.gitignore | ||
.gitmodules | ||
.travis.yml | ||
LICENSE | ||
README.md | ||
stack.ghc-8.2.2.yaml |
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