mirror of
https://github.com/GaloisInc/macaw.git
synced 2024-12-04 17:13:09 +03:00
Open source binary analysis tools.
1ea6792f28
We don't really do anything with alignment, but sometime asm code ands pointers to align them. For example `andq $(-64), %rsp` aligns the pointer to a multiple of 64. To support code like this we treat "and"-ing a pointer with a special constant of the form 0xFFFF...FF000 (i.e., and alignment) as a subtracting `0x0000...00XXX` where the `XXX` is symbolic. This looses some information (i.e., we don't know that the result is aligned). However, it is good enough for checking memory safety, as it covers all possible results of the alignment. |
||
---|---|---|
base | ||
scripts | ||
symbolic | ||
x86 | ||
x86_symbolic | ||
.gitignore | ||
.gitmodules | ||
.travis.yml | ||
LICENSE | ||
README.md |
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 -- A work-in-progress library that provides symbolic simulation of Macaw programs.
- macaw-x86 -- Provides definitions enabling Macaw to be used on X86_64 programs.
The libraries that make up Macaw are released under the BSD license.