Commit Graph

77 Commits

Author SHA1 Message Date
Joe Hendrix
49580deb0e
Add opt pass; Improve comments. 2017-06-22 10:03:43 -07:00
Joe Hendrix
35d08c96bc
Change RelocatableValue to support segments; remove block label 2017-06-21 14:44:31 -07:00
Joe Hendrix
f8b9fe25f6
Harden discovery to gracefully fail if disassembler returns empty listof blocks. 2017-06-20 17:05:02 -07:00
Joe Hendrix
60bee7d5bc
Switch to using ParsedIte over ParsedBranch. 2017-06-20 16:23:33 -07:00
Joe Hendrix
1d0623e34e
Introduce ParsedIte 2017-06-20 14:47:29 -07:00
Joe Hendrix
49d5aefb4e
Simplify DiscoveryFunInfo 2017-06-20 09:01:26 -07:00
Joe Hendrix
172cf7e863
Improve discovery comments. 2017-06-19 16:30:24 -07:00
Joe Hendrix
8075bad9f9
Revise discovery to so that lookupFunction removes unexplored functions. 2017-06-19 07:45:02 -07:00
Joe Hendrix
e09e37fab4
Switch to use elfclass over relawidth 2017-06-14 16:49:09 -07:00
Joe Hendrix
45b5c181e3
Update to support new elf-edit changes. 2017-06-14 16:03:04 -07:00
Joe Hendrix
1e2b47f015
Add additional flag to control discovery; improve return checking. 2017-06-13 17:34:39 -07:00
Joe Hendrix
43f4cd95f9
Cleanups to remove redundent class constraints; simplify interface invariants. 2017-06-07 15:16:08 -07:00
Joe Hendrix
b6997100c3
Cleanups to fix haddock documentation, rename types to be more accurate. 2017-06-04 11:09:07 -07:00
Joe Hendrix
7a805e6be4
Export additional functions from discovery to allow more fine-grained clients. 2017-06-03 22:17:33 -07:00
Joe Hendrix
4b7c2bd6f7
Update DiscoveryInfo to remove ids parameter. 2017-06-02 16:30:36 -07:00
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