Commit Graph

53 Commits

Author SHA1 Message Date
Alex Groce 7756c80d63 try changing test output to TRACE 2018-12-22 13:44:43 -07:00
Peter Goodman b1da5d6d48 Improved the CMakeLists.txt just slightly. Provided a default, weak-attributed main function into libdeepstate so that tests don't need to define them. The weak attribute means that any main function defined by libfuzzer will be a strong symbol and take over, so there won't be a conflict. Adjusted examples accordingly to omit now redundant conditionally-compiled main functions, as that leaked out too many underlying details. 2018-09-27 16:45:08 -07:00
Peter Goodman 9a8e5cca23 Disable static builds on macOS 2018-09-26 11:44:04 -07:00
ggrieco-tob a8b914b35f Reliable SIGSEGV in clang 6.0
This will also fix #95
2018-09-24 13:54:33 -03:00
Alex Groce fa3820af15 compile libfuzzer with UBSAN also 2018-08-08 12:27:28 -07:00
Alex Groce 656ffa1b6d new way to specify which test 2018-07-30 22:05:56 -07:00
Alex Groce dfe450dcf1 proper delimiter 2018-07-30 21:59:18 -07:00
Alex Groce b25efe48a6 compile the right file 2018-07-30 21:57:10 -07:00
Alex Groce 805e5026ea fix cmakelists 2018-07-30 21:55:15 -07:00
Alex Groce 763d106a7a fix cmakelists 2018-07-30 21:54:27 -07:00
Alex Groce 7b403bbc8f fix cmakelists 2018-07-30 21:53:53 -07:00
Alex Groce 717221836f fix missing _Addition 2018-07-30 21:52:38 -07:00
Alex Groce 711cd7ed3d add other overflow test 2018-07-30 21:50:56 -07:00
Alex Groce c23e4e20b5 Libfuzzerize all examples 2018-07-30 21:31:41 -07:00
Alex Groce 3006e19817 proper link 2018-07-30 21:24:39 -07:00
Alex Groce 2ceaa1173d fix OneOF target name 2018-07-30 21:22:29 -07:00
Alex Groce 1aef3fd325 examples with libfuzzer 2018-07-30 21:21:33 -07:00
Joe Ranweiler 973d2a9264 Add KLEE example 2018-02-25 10:27:47 -08:00
Joe Ranweiler 281c5117ed Add example for DeepState_TakeOver() 2018-02-20 15:43:34 -08:00
Joe Ranweiler 12dc706534 Add crashing example tests 2018-02-14 12:06:26 -08:00
Joe Ranweiler 731876a7e6 Fix typo in example CMakeLists.txt 2018-02-10 16:09:36 -08:00
Peter Goodman 1aa468dabc Minor formatting changes. 2018-02-06 12:18:06 +08:00
Peter Goodman d227cc7f34 Enabled PIC. 2018-01-22 21:19:54 -05:00
Peter Goodman ee80baa0ea Minor fix. 2018-01-18 14:24:08 -05:00
Peter Goodman 2eaeb7480c Adding Google Flags-like command-line option parsing, though implemented in C, to the main executable. The code is ported from Granary2. 2018-01-07 16:25:31 -05:00
Peter Goodman bdf9f97913 Fixed OneOf example. 2017-12-12 22:22:31 -05:00
Peter Goodman ada078368f Removing testfs example, and moving it to pgoodman/testfs. 2017-12-12 22:09:31 -05:00
alex dca3f7342e adding 2017-12-12 14:45:44 -08:00
alex 97162bdf13 missing comment 2017-12-12 12:26:02 -08:00
alex acd4e025b6 Merge branch 'master' of https://github.com/trailofbits/deepstate 2017-12-12 12:24:44 -08:00
alex 5b35c46fba small edits 2017-12-12 12:24:09 -08:00
Peter Goodman e9bd6dc177 Fixes one or two subtle issues. But the more interesting fix is that I implemented puts in terms of DeepState_Log. Calls to printf that had no format arguments are transformed by the compiler into calls to puts, but that wasn't being wrapped by DeepState, so it was appearing as though those log messages never actually happened. 2017-12-12 14:01:41 -05:00
alex c65b0c7ba4 better version 2017-12-12 00:20:13 -08:00
alex 70090bd712 Version that works, test depth 2017-12-11 23:17:18 -08:00
Peter Goodman 669f6cf3f9 Made the OneOf example work. 2017-12-11 19:40:39 -05:00
alex 76ff9ec5b3 capture fixed 2017-12-11 14:56:48 -08:00
alex 26657954c7 OneOf example (failing) 2017-12-11 14:30:37 -08:00
Peter Goodman 8248bbdcbc Removed usage of old name, added in a Euler power of like primes example. When the pairwise ASSERT_NEs are absent, you get interesting results that show examples of integer overflows. 2017-12-10 20:08:08 -05:00
Peter Goodman 188d4517d8 Added prime polynomial example, new Pumping function to address scalability challenges with primality testing, and some improvements to the streaming interface, where if you don't stream in values, then the python side doesn't end up printing out some 'empty' stream infos. 2017-12-09 16:43:43 -05:00
Peter Goodman 3aaaf71b85 Added support for c++ test fixtures. 2017-12-08 23:58:59 -05:00
Artem Dinaburg 2157f67dac Add an example that modifies an existing C program for symbolic testing 2017-11-02 00:33:35 -04:00
Peter Goodman bc208dbd4d Fixes issue where the angr script printed out the wrong symbol bytes. 2017-11-01 21:27:08 -04:00
Peter Goodman 4f914e4eee Fixes to stream formatting of doubles, they weren't being streamed before. Implemented the chk versions of printf and such, so that they all route through the logging interface as well. Implemented the concretization APIs. 2017-11-01 17:56:54 -04:00
Peter Goodman d2bc82fc35 Renaming from McTest to DeepState. 2017-11-01 13:38:32 -04:00
Peter Goodman f7f029965b Whatever I had before renaming. 2017-11-01 12:14:22 -04:00
Peter Goodman a46e06b03b Refactored to split common code between Manticore and Angr out into common.py. Implemented the new deferred streaming stuff, it seems to work semi-well for this simple cases I've tested, but there's still work to do. The latest code has some remaining issues. Printing out the final input bytes in Angr shows the wrong thing, although what gets streamed out is right. This is visible when running mctest-angr examples/ArtihmeticProperties. With Manticore, the big issue is that it doesn't properly pickle smt expressions (or something to this effect), so I'm ending up with multiple definitions of the same stuff and that throws exceptions. This is tricky to deal with because the streaming of output needs to be able to save symbolic data. 2017-11-01 02:42:31 -04:00
Peter Goodman 3702bfcb81 Changed how the logging works to log to a static buffer, then the hooks pull info out from there. 2017-10-30 14:16:02 -04:00
Peter Goodman e4f4cfe0db Kind of feature parity between Manticore and Angr on these tests. 2017-10-30 00:45:59 -04:00
Peter Goodman e0f104aaef Adding logger support, and other things. 2017-10-29 18:54:41 -04:00
Peter Goodman 89da3e8e94 Made it so that tests can be run on their own, independent of a symbolic executor. This will open up libFuzzer support, and concrete execution of solved-for test case inputs. Removed all stuff related to sections. Made tests get registered via initializers. Working on exposing the API functions to be hooked by Manticore via a special system call with addres 0x41414141. Split the Angr version out into the mctest-angr binary, and going to try to make the mctest binary use Manticore. 2017-10-28 19:13:59 -04:00