Joe Hendrix
230b318dcf
Updates to discovery
2018-08-14 23:29:02 -07:00
Joe Hendrix
4c21eb9a97
Merge remote-tracking branch 'arm-reloc/master'
2018-08-12 23:30:23 -07:00
Daniel Wagner
da991102e7
comment IPAlignment more
2018-08-09 13:20:56 -04:00
Ledah Casburn
af826d6c16
Add naive bytestring matching utility.
...
Used to determine where bytes from execution trace match memory from ELF file.
2018-08-07 17:03:16 -07:00
Joe Hendrix
7f00e036b2
Remove error with ARM relocations.
2018-08-07 11:20:03 -07:00
Joe Hendrix
b49036ebdf
Fix broken array bounds check in jump table discovery.
2018-07-30 13:58:52 -07:00
Joe Hendrix
aa742d148d
Fix missing negation in function executable check.
2018-07-30 13:32:54 -07:00
Joe Hendrix
036f39cbb4
Bug fixes to code discovery; introduce JumpTableLayout.
...
This fixes bugs in scanning addresses in memory, and failing to check
the executable status of function entry points.
2018-07-30 13:28:46 -07:00
Joe Hendrix
e4a27d7bbc
Merge branch 'master' of github.com:GaloisInc/macaw
2018-07-27 00:28:50 -07:00
Joe Hendrix
c6a1ecba6c
Rename MemSet to RepStos to reflect underlying x86 function.
2018-07-27 00:24:24 -07:00
Tristan Ravitch
4d1299a6d2
Merge branch 'master' into breaking-change/symbolic-global-map
2018-07-24 16:53:51 -07:00
Joe Hendrix
43e81ab795
Bump parameterized-utils min version
2018-07-23 13:47:24 -07:00
Joe Hendrix
901446bda5
Add test case for object jump table.
2018-07-20 18:16:52 -07:00
Joe Hendrix
0d0898c644
Add support for parsing jump tables with relocations in entries.
...
This also adds simplification rules and some refactoring of existing
interfaces
2018-07-20 09:57:06 -07:00
Joe Hendrix
f1c5b10fd5
Extend relocation support and 1-1 x86 block association.
2018-07-18 16:57:17 -07:00
Brian Huffman
2330c81ab4
Fix haddock parse errors.
2018-07-17 13:23:48 -07:00
Joe Hendrix
b24649db35
Remove redundant function from Memory.
2018-07-12 13:46:02 -07:00
Joe Hendrix
bca405562a
Drop automatic parsing NO_TYPE symbols in ElfLoader.
2018-07-03 16:35:41 -07:00
Andrei Stefanescu
313b2a738a
Add parameters and return type to subprogram datatype
2018-06-26 10:58:43 -07:00
Joe Hendrix
0fc925f989
Update for elf-edit compat
2018-06-15 08:24:52 -07:00
Joe Hendrix
6391a87db1
Merge branch 'master' of github.com:GaloisInc/macaw
2018-06-12 16:20:55 -07:00
Daniel Wagner
f4d4e381b7
have a way to align potentially misaligned IPs
2018-06-11 10:30:32 -04:00
Daniel Wagner
7251bb6b03
MOAR REWRITES
2018-06-11 10:30:32 -04:00
Daniel Wagner
a9d49a96ed
don't turn sext into uext
2018-06-11 10:30:32 -04:00
Daniel Wagner
b5c143418d
rewrite trunc.sext and trunc.uext
2018-06-11 10:30:32 -04:00
Joe Hendrix
494f6c176d
Updates to Macaw.
2018-06-06 11:48:45 -07:00
Joe Hendrix
77627c391d
Remove redundant IPAlignment constraint.
2018-06-06 11:28:26 -07:00
Daniel Wagner
e3d7c26b8c
minor improvement to jump bounds abstract interpretation
2018-05-30 15:50:16 -04:00
Daniel Wagner
024e393e8e
more rewrite rules for <= and <
2018-05-30 15:50:16 -04:00
Daniel Wagner
38aeecba21
add/improve rewrite rules for testing bits of shifted values
2018-05-30 15:50:16 -04:00
Daniel Wagner
917f921301
make JumpBounds abstract interpretation more precise
2018-05-30 15:50:16 -04:00
Daniel Wagner
d0566fe03b
lay some groundwork for jump table detection on PPC
2018-05-30 15:50:16 -04:00
Daniel Wagner
3814d9c649
documentation fix
2018-05-30 15:50:16 -04:00
Daniel Wagner
5c9707508c
rewrite away saturated shifts
2018-05-30 15:50:16 -04:00
Daniel Wagner
fa96a062e1
adding two finsets, get a finset
2018-05-30 15:50:16 -04:00
Ben Selfridge
0dddfcacea
fixed haddock parse errors
2018-05-10 16:48:18 -07:00
Tristan Ravitch
0eb0bd14f7
Merge branch 'master' of github.com:GaloisInc/macaw into HEAD
2018-04-25 08:41:41 -07:00
Daniel Wagner
6453486013
delete some debugging print statements
2018-04-24 17:07:07 -04:00
Daniel Wagner
0565805c4f
more principled error reporting in readMemReprDyn
2018-04-24 14:52:38 -04:00
Daniel Wagner
3b3bcecc4a
handle jump tables again, including PIC tables
2018-04-24 14:52:38 -04:00
Tristan Ravitch
bd686c3c2e
Merge branch 'master' of github.com:GaloisInc/macaw into HEAD
2018-04-24 09:07:39 -07:00
Joe Hendrix
9047cb41fb
Fix warnings in macaw-base; Fix errors in macaw-symbolic.
...
This also makes some changes to eliminate a couple redundent
type-class constraints in CrucGen.hs which propagated to other changes.
2018-04-24 01:17:03 -07:00
Tristan Ravitch
ee96681d8d
Merge branch 'master' of github.com:GaloisInc/macaw into HEAD
2018-04-23 18:51:19 -07:00
Tristan Ravitch
8c20e0e156
Export another utility and type from Macaw.Memory
...
This type is needed to write some type signatures, and we needed an accessor to
extract segment ranges from a SegmentContents.
2018-04-23 18:50:39 -07:00
Joe Hendrix
052506f202
Remove PhaseHolderStmt.
2018-04-23 11:35:31 -07:00
Joe Hendrix
097edda1ef
Relocation support; various cleanups.
...
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.
2018-04-23 11:24:21 -07:00
Joe Hendrix
0b8e95b0b0
Merge branch 'master' of github.com:GaloisInc/macaw
2018-04-17 16:02:28 -07:00
Brian Huffman
1e3fad7d77
Fix typo in module header description.
2018-04-16 10:07:23 -07:00
Joe Hendrix
2feebceddc
Refactor relocation support; support .rel and some object symbols.
2018-04-05 09:06:12 -07:00
Tristan Ravitch
2524b77cb5
base: Change the type of the address in the ArchState
statement
...
ArchMemAddr is easier to use than ArchAddrWord in downstream clients, and is
probably more faithful in the case where we want to support shared libraries
and/or object files.
2018-03-30 10:33:49 -07:00