Commit Graph

1412 Commits

Author SHA1 Message Date
Joe Hendrix
2261c40486
Remove UpperHalf; generalize runCFGM 2017-06-02 13:03:17 -07:00
Joe Hendrix
51ac2e53a2
Separate App/remove ConcatV. 2017-06-02 11:10:58 -07:00
Joe Hendrix
4a145f6b49
Fix identifyCall 2017-05-31 16:35:53 -07:00
Joe Hendrix
1d6573deb2
Migrate architecture independent code from reopt to here. 2017-05-29 23:25:51 -07:00
Joe Hendrix
735d41e119
Update memory accesses.
This adds endianess anotations and ensure types align with byte bounda.
2017-05-24 15:55:48 -07:00
Joe Hendrix
84e302c41e
Fix comment; minor style changes. 2017-05-15 11:43:49 -07:00
Joe Hendrix
5b3d1aa58e
Cleanup dwarf type information. 2017-05-15 10:47:08 -07:00
Joe Hendrix
a243f556ae
Simplify class constraints for discovery. 2017-05-10 22:23:12 -04:00
Joe Hendrix
19c0274682
Remove script for building just these dependencies 2017-05-05 00:13:54 -07:00
Joe Hendrix
88c4017c3f
Remove flexdis86 dependency; use macaw-x86 2017-05-04 16:17:51 -07:00
Joe Hendrix
6e10aaa447
Add comment to GlobalDataInfo 2017-04-28 13:54:25 -07:00
Ben Davis
177812fdc1 Expose additional DWARF types 2017-04-04 16:19:47 -04:00
Ben Davis
d9a516f09f Replace error on duplicate symbol names with just a warning
Symbol names are not always unique (multiple addresses are associated with same
name) on code we want to analyze, so just continue anyway.
2017-03-29 10:50:23 -04:00
Tristan Ravitch
9f684541dc Fix a typo in the README 2017-03-22 11:39:18 -07:00
Tristan Ravitch
f4309f0c0f Add a README describing what the library is and a little bit about how to use it 2017-03-22 11:38:24 -07:00
Tristan Ravitch
e29d94be06 Change the representation of RelocatableValue
It used to hold a SegmentedAddr.  This caused issues in semantics that require
the ability to perform addition and subtraction operations on RelocatableValues.
Addition or subtraction operations on SegmentedAddrs are not well defined,
because these operations can push a value from one segment into another, and
there is no way for them to compute the new segment.

The new representation is just a MemWord, whose interpretation is now decided
later (in `transferValue'` in AbsState).
2017-03-21 14:32:30 -07:00
Tristan Ravitch
ae02239342 Merge branch 'master' of gitlab-ext.galois.com:macaw/macaw 2017-03-20 09:57:09 -07:00
Joe Hendrix
1e0c10787f
Remove tryGetStaticSyscallNo 2017-03-20 00:07:29 -07:00
Tristan Ravitch
823677d4ea Merge branch 'master' of gitlab-ext.galois.com:macaw/macaw 2017-03-17 14:22:22 -07:00
Joe Hendrix
eb547022d8
Minor cleanups to macaw 2017-03-16 02:44:33 -04:00
Joe Hendrix
5b8d1798bf
Add symbol names to DiscoveredFunInfo. 2017-03-10 22:01:44 -08:00
Joe Hendrix
1ce1547e6e
Add check to ensure jumps to start of function are self-loops 2017-03-08 16:57:12 -08:00
Joe Hendrix
e4061d370c
Remove DiscoveryInfo blocks field as parsedBlocks replaces it. 2017-03-08 13:40:40 -08:00
Joe Hendrix
26f68bf003
Migrate away from global blocks in discovery. 2017-03-08 13:21:41 -08:00
Joe Hendrix
2d23dba229
Add foldAppl 2017-03-05 23:56:37 -08:00
Joe Hendrix
40b92c901d
Make return address unmodifiable for analysis purposes. 2017-03-01 12:08:10 -08:00
Joe Hendrix
8dee23f9eb
Remove unneeded reason information from frontier. 2017-02-27 19:14:25 -08:00
Tristan Ravitch
38aa71d033 Merge branch 'master' of gitlab-ext.galois.com:macaw/macaw 2017-02-27 08:50:48 -08:00
Joe Hendrix
9518348ea1
Updates to resolve infinite loop due to abstract domains iteration. 2017-02-25 19:31:14 -08:00
Joe Hendrix
e97e7c7f49
Replace diassemble error with trace 2017-02-24 01:54:44 -05:00
Joe Hendrix
953e607e0e
Update classifyfailure 2017-02-24 01:53:11 -05:00
Joe Hendrix
fde2db4726
Fix bug in discovery; Remove unused commented out code. 2017-02-16 13:20:55 -05:00
Joe Hendrix
febac68d9f
Remove classifyBlock 2017-02-16 10:54:47 -05:00
Joe Hendrix
0d086237e8
Start using jump bounds; introduce "ParsedBlocks"
The code is now using a constraint representation for Jump bounds; an
attempt to reduce the need for strided intervals.

It's a bit unclear how much of a win this is; the jump bounds should
recognize the size of a jump table with fewer needs to repeat as
strided intervals may.  However, it doesn't solve the incompleteness
problem that I hoped it would -- if the intra-procedural control flow
graph contains missing edges, the result may still be incomplete.

This code also introduces ParsedBlocks, a basic block representation
that used the ParseTermStmt.  A future patch will start including this
in the discoveryinfo, so that later procedures do not need to call
"classifyBlock".
2017-02-16 02:53:19 -05:00
Joe Hendrix
848cc2d0d0
Fix race condition and unnecessary error checking in Discovery.hs 2017-02-13 01:12:50 -08:00
Joe Hendrix
200afa251a
Add Bits instance to MemWord. 2017-02-12 23:30:07 -08:00
Joe Hendrix
36d161acd2
Migrate abstract state with start of block to block region datatype. 2017-02-11 23:50:40 -08:00
Joe Hendrix
fc2a7a06aa
Fixes to enasure codeInfoMap and blocks contain same keys. 2017-02-11 23:22:17 -08:00
Joe Hendrix
ab2e50a17d
Move assignId ref computation from reopt to macaw; minor additional changes. 2017-02-03 14:25:35 -08:00
Joe Hendrix
79a3390b09
Fix JumpBounds. 2017-01-31 13:47:26 -08:00
Joe Hendrix
cc76e82455
Merge branch 'master' of gitlab-ext.galois.com:macaw/macaw 2017-01-28 12:58:36 -08:00
Joe Hendrix
e962608f2c
Add JumpTable bounds; remove code discovery dependency on syscall. 2017-01-28 12:57:49 -08:00
ben
390d6b63d9 Merge branch 'fix-stack-containers-version' into 'master'
Update stack.yaml to match cabal requirement on containers version

See merge request !4
2017-01-18 11:47:35 -08:00
Ben Davis
72c8ff19d5
Update stack.yaml to match cabal requirement on containers version
macaw.cabal requires 'containers >= 0.5.8.1', but this is newer than the version
available via the stack lts-6.23 resolver. Specifying acceptable versions of
containers (and lens and kan-extensions) in stack.yaml lets us 'stack build'.
2017-01-18 14:26:48 -05:00
jhendrix
49c10bbc00 Merge branch 'add-deps-checkout-script' into 'master'
Add a script to clone/pull dependencies

See merge request !3
2017-01-18 11:15:16 -08:00
Ben Davis
e8b6c3a0ad
Add a script to clone/pull dependencies 2017-01-18 11:17:59 -05:00
Joe Hendrix
3014a23a70
Fix 64-bit dependency in Macaw. 2017-01-17 02:09:23 -08:00
Joe Hendrix
1b878ee6d6
Cleanup classifyBlock return value. 2017-01-17 01:19:55 -08:00
tristan
edcea3eb28 Merge branch 'fix/intervalmap-bound' into 'master'
Add a version bound on IntervalMap

See merge request !2
2017-01-06 16:13:44 -08:00
Tristan Ravitch
37a38954eb Add a version bound on IntervalMap
Macaw uses the API from 0.5, which is incompatible with 0.4 for the contains
function.
2017-01-06 16:10:23 -08:00