mirror of
https://github.com/GaloisInc/macaw.git
synced 2024-12-29 00:59:09 +03:00
097edda1ef
This patch adds initial support for relocations in Macaw code discovery, and adds other refactoring. * It introduces a SymbolValue constructor to represent references to symbols within Macaw. * The various cases for x86 mov are made explicit after the flexdis refactor broke the previous code. We should now support segment register movs and give better error messages when seeing mov with control or debug registers. * The generic exception operation is replaced with Hlt and UD2 terminal x86-specific statements. * CodeAddrReason is split into FunctionExploreReason and BlockExploreReason to clarify whether a function or block was discovered. * The Macaw pretty printer is changed to use write_mem in place of pointer syntax. * Various other refactoring is made to clarify code.
79 lines
2.1 KiB
Plaintext
79 lines
2.1 KiB
Plaintext
name: macaw-base
|
|
version: 0.3
|
|
author: Galois, Inc.
|
|
maintainer: jhendrix@galois.com
|
|
build-type: Simple
|
|
cabal-version: >= 1.9.2
|
|
license: BSD3
|
|
license-file: LICENSE
|
|
description:
|
|
Macaw is a multi-architecture binary analysis library written in
|
|
Haskell. @macaw-base@ defines the core algorithms and data types
|
|
used across architectures. This includes:
|
|
.
|
|
* The control-flow graph data structure used to represent control-flow
|
|
graphs is defined in "Data.Macaw.CFG".
|
|
.
|
|
* The datatypes used to add support for new architectures are defined in
|
|
"Data.Macaw.Architecture".
|
|
.
|
|
* The datatypes used to represent memory are defined in "Data.Macaw.Memory".
|
|
Functions for constructing memory objects from Elf files are in
|
|
"Data.Macaw.Memory.ElfLoader".
|
|
.
|
|
* The main code discovery algorithm for discovering code are in
|
|
"Data.Macaw.Discovery".
|
|
.
|
|
* Declarations for working with Dwarf debug information are in "Data.Macaw.Dwarf".
|
|
|
|
library
|
|
build-depends:
|
|
base >= 4,
|
|
ansi-wl-pprint,
|
|
binary,
|
|
binary-symbols,
|
|
bytestring,
|
|
containers >= 0.5.8.1,
|
|
elf-edit >= 0.29,
|
|
galois-dwarf,
|
|
IntervalMap >= 0.5,
|
|
lens >= 4.7,
|
|
mtl,
|
|
parameterized-utils >= 0.1.6,
|
|
text,
|
|
vector,
|
|
QuickCheck >= 2.7
|
|
|
|
hs-source-dirs: src
|
|
|
|
exposed-modules:
|
|
Data.Macaw.AbsDomain.AbsState
|
|
Data.Macaw.AbsDomain.JumpBounds
|
|
Data.Macaw.AbsDomain.Refine
|
|
Data.Macaw.AbsDomain.StridedInterval
|
|
Data.Macaw.Analysis.FunctionArgs
|
|
Data.Macaw.Architecture.Info
|
|
Data.Macaw.CFG
|
|
Data.Macaw.CFG.App
|
|
Data.Macaw.CFG.Block
|
|
Data.Macaw.CFG.BlockLabel
|
|
Data.Macaw.CFG.Core
|
|
Data.Macaw.CFG.DemandSet
|
|
Data.Macaw.CFG.Rewriter
|
|
Data.Macaw.DebugLogging
|
|
Data.Macaw.Discovery
|
|
Data.Macaw.Discovery.AbsEval
|
|
Data.Macaw.Discovery.State
|
|
Data.Macaw.Dwarf
|
|
Data.Macaw.Fold
|
|
Data.Macaw.Memory
|
|
Data.Macaw.Memory.ElfLoader
|
|
Data.Macaw.Memory.LoadCommon
|
|
Data.Macaw.Memory.Permissions
|
|
Data.Macaw.Types
|
|
Data.Macaw.Utils.Pretty
|
|
|
|
ghc-options: -Wall
|
|
ghc-options: -fno-warn-unticked-promoted-constructors
|
|
ghc-prof-options: -O2 -fprof-auto-top
|