Tristan Ravitch
ce96c55896
Merge branch 'master' of github.com:GaloisInc/macaw into HEAD
2018-03-29 17:09:05 -07:00
Tristan Ravitch
51b8dae802
Change the pretty printing of the 'ArchState' macaw statement
2018-03-29 17:08:40 -07:00
Joe Hendrix
265f61e206
Merge branch 'master' of github.com:GaloisInc/macaw
2018-03-29 16:30:29 -07:00
Joe Hendrix
007405db1d
Improve robustness of elf loader, and start trying to parse relocations in objects.
2018-03-29 15:21:31 -07:00
Iavor Diatchki
8ac1a914ae
Merge branch 'master' of github.com:GaloisInc/macaw
2018-03-29 12:42:24 -07:00
Iavor Diatchki
81f327e037
Add a function to find all symbols, not just functions.
...
Joe is working on making this more generic in some way,
so this is just a quick (probably temporary) fix to expose
the needed functionality.
2018-03-29 12:42:18 -07:00
Jason Dagit
372d7d7208
Add a new macaw statement to record updates to machine registers
...
The new statement is called `ArchState`, and has two fields: an address and a
map. The address is the address of the instruction it is standing in for. The
map contains a mapping from the *machine registers* that the instruction updated
to the *macaw values* that were assigned to those locations.
This is useful metadata for debugging, but is also required to do some types of
architecture-independent analysis (where we can still reason about machine
register contents).
2018-03-29 09:53:08 -07:00
Tristan Ravitch
8d5e39c87f
base: Add additional simplification rules to the rewriter
2018-03-27 18:13:46 -07:00
Tristan Ravitch
c2c5835b10
base: Add another case to the abstract interpretation
...
Now handle shifts of constants
2018-03-27 18:13:23 -07:00
Kevin Quick
594e9e025d
Restrict Semigroup imports to avoid collisions on unused definitions.
2018-03-27 10:43:04 -07:00
Kevin Quick
818f7a7767
Remove unused import in Macaw CFG Core.
2018-03-27 10:42:28 -07:00
Kevin Quick
377c3d1a2b
Use architecture-specific identifyReturn in Discovery process.
...
Instead of inline analysis of whether the instruction pointer has been
updated to contain the ReturnAddr symbolic value, defer the
determination of the call return to the (previously defined but
unused) architecture-specific handling. This allows architectures
like ARM that perform modifications on the values loaded to the
instruction pointer (e.g. clearing lower bits) to provide their own
recognition of a return operation.
Also modifies the signature of identifyReturn to return a Sequence of
statements to match the identifyCall type signature.
Replaces the previously unused identifyX86Return with the inline
detection of IP == ReturnAddr.
2018-03-27 10:35:55 -07:00
Joe Hendrix
ceefa7ae75
Update memory to use explicit BSS region and disable includeBSS option.
2018-03-23 16:26:07 -07:00
Joe Hendrix
557408132c
Merge branch 'master' of github.com:GaloisInc/macaw
2018-03-23 14:13:09 -07:00
Aaron Tomb
e33ecf3e84
Fix build with GHC 8.4.1
2018-03-23 14:09:28 -07:00
Jason Dagit
e1ea0c8def
Discovery: pretty instance for DiscoveryFunInfo now prints function address
2018-03-14 17:32:29 -07:00
Ben Davis
9b592c3285
Add exploreFnPred to DiscoveryState to optionally filter exploration
2018-03-02 08:39:49 -05:00
Kevin Quick
601b9def8c
Merge branch 'master' of https://github.com/GaloisInc/macaw
2018-03-01 11:00:14 -08:00
Kevin Quick
e35acdcb19
Minor comment fixup.
2018-03-01 10:59:11 -08:00
Kevin Quick
84eb0a0a80
Revert "Add BVUrem App support."
...
This reverts commit 6a0a59e298
.
Do not want to add BVUrem because divide by zero can cause an
exception and this will greatly increase the complexity for analysis.
2018-03-01 10:57:28 -08:00
Iavor Diatchki
da2a29b595
:Merge branch 'master' of github.com:GaloisInc/macaw
2018-03-01 10:00:41 -08:00
Iavor Diatchki
c69349e957
Add support for global memory regions.
2018-03-01 10:00:32 -08:00
Joe Hendrix
14ab6352f5
Export elfAddrWidth
2018-02-28 09:26:10 -08:00
Iavor Diatchki
2e21856afe
Merge remote-tracking branch 'origin/master' into mem-model
...
# Conflicts:
# base/src/Data/Macaw/Memory/ElfLoader.hs
2018-02-27 16:36:08 -08:00
Joe Hendrix
9c8d7921f8
Merge branch 'master' of github.com:GaloisInc/macaw
2018-02-26 13:18:15 -08:00
Joe Hendrix
027c355001
Remove reloc hack
2018-02-26 13:04:01 -08:00
Kevin Quick
6a0a59e298
Add BVUrem App support.
2018-02-21 20:39:57 -08:00
Joe Hendrix
cc2d09a07d
Use type synonym to clarify argument for including BSS.
2018-02-20 16:37:26 -08:00
Joe Hendrix
d8cc235368
Fix bug in loading Elf sections with no data.
2018-02-20 16:28:54 -08:00
Iavor Diatchki
6cafcdf254
More verbose failures.
2018-02-20 11:53:18 -08:00
Joe Hendrix
b20ab6664c
Provide additional control options for discovery.
2018-02-14 23:16:21 -08:00
Iavor Diatchki
c772eb31f4
Derive Show
instance for Endianness
2018-02-09 14:12:57 -08:00
Joe Hendrix
526f8c5e6f
Move additional functions to discovery; extend loading options.
2018-02-07 14:50:53 -08:00
Joe Hendrix
dbba6dfad9
Merge branch 'master' into jhx-reloc-experiment
...
This also patches for elf-edit changes.
2018-01-30 15:15:20 -08:00
Joe Hendrix
197a0b3ed1
Add additional utilities and flexibility for loading elf files.
2018-01-29 18:18:39 -08:00
Joe Hendrix
7e144a51f4
Memory interface renamings.
2018-01-29 11:05:19 -08:00
Joe Hendrix
e1e558239e
Minor cleanups.
2018-01-29 01:06:59 -08:00
Joe Hendrix
ca7ab08124
Merge branch 'master' of github.com:GaloisInc/macaw
2018-01-29 00:22:54 -08:00
Joe Hendrix
cbbec5378c
Haddock improvements; some module reoganization.
2018-01-29 00:20:54 -08:00
Daniel Wagner
fbe716607f
fix segment equality check
2018-01-26 14:09:01 -08:00
Daniel Wagner
fc76fd5dc0
split blocks when we discover a jump into their middle
2018-01-26 10:18:31 -08:00
Joe Hendrix
b3cd6fd049
Fix loop in X86 bvUle simplification.
2018-01-23 16:06:54 -08:00
Joe Hendrix
e94689bd7a
Continued macaw-symbolic progress.
2018-01-23 15:16:26 -08:00
Joe Hendrix
eda3c6412a
Fix error in resolving symbols.
2018-01-23 13:38:49 -08:00
Joe Hendrix
bedd8a6ab4
Introduce MemSymbol type so we can have common type for Elf and Mach-O symbols.
2018-01-21 18:21:09 -08:00
Joe Hendrix
278b079a49
Fix warnings; remove -Werror
2018-01-21 07:56:04 -08:00
Joe Hendrix
79b5606e3c
Merge remote-tracking branch 'origin/avx'
2018-01-16 15:38:14 -08:00
Joe Hendrix
b7e06e64ee
Progress on macaw-symbolic and macaw-x86-symbolic.
2018-01-16 15:06:31 -08:00
Tristan Ravitch
46a97a16b4
Fix a haddock parse bug
2018-01-08 22:50:53 -08:00
Joe Hendrix
b89f60bf2b
Replace SymbolAddrMap with AddrSymMap for better code reused in reopt.
2018-01-08 12:28:28 -08:00