* Working copy for strcpy - without symbolic input
* Corrected null term error
* Needs to be tested but general algorithm idea for handling symbolic input
* Updated according to feedback
* Beginning of strcpy tests
* Revising strcpy algorithm - realised it was flawed
* This should be a more correct way of handling symbolic bytes. Needs testing
* Get rid of redundant code
* Fixed another typo
* Update manticore/native/models.py
Co-Authored-By: Eric Kilmer <[email protected]>
* Clarified and updated comments
* Fixed some errors in model while working on tests
* Progress on tests
* Found typo in models
* Removed unnecassary whitespace
* Added some helper functions for tests and to clean things up
* Added comments for helper functions
* WIP: current state of strcpy tests
* Updated type hints from Expression to BitVec
* Fixed linter complaints
* Updated strcpy return type to make linter happy
* Added some helper properties to expression BitVecITE
* Overwrote equal op in ArraySelect
* Fixed formatting in expression
* Almost done just needs some cleaning
* Attempt at overriding __eq__ again
* Cleaned up tests some still have unresolved __eq__ issues
* Removed stuff from expression and updated test_models.py
* Removed stuff from expression and updated test_models.py
* Basicly done probably needs some more comments for clarity
* Cleaned up the tests a little
* Corrected linter error and added more comments to strcpy model functions
* Remove duplicated word in comment
Co-authored-by: Eric Kilmer <[email protected]>
* Update manticore/native/models.py
Co-authored-by: Brad Larsen <[email protected]>
* Update manticore/native/models.py
Co-authored-by: Brad Larsen <[email protected]>
* Update tests/native/test_models.py
Co-authored-by: Brad Larsen <[email protected]>
* Updates according to feedback
* Swapped can_be_true and must be true
* Updates for feedback
* Forgot to lint
* Fixed some typos
* Largely simplified ITE being built
* Forgot to lint
* This is messy but seems to be concretizing to the correct states
* Very very messy state of the code before attempting to concretize on every possible NULL
* Cleaned up model with forking on every possible NULL
* Removed trailing whitespace for CodeClimate
* Added state.context for offset value back
* New symbolic test with regex for expected output
* New symbolic test with regex for expected output
* Updated for mypy
* Updated comments in tests
* Updated cant_be_null to cannot_be_null
* Corrected docstring location for _test_strcpy
* Add break for efficiency
* Added compiler information and source file
* Updated regex to use raw strings
Co-authored-by: Eric Kilmer <[email protected]>
Co-authored-by: Brad Larsen <[email protected]>
* Snapshots
* CC
* Allow snapshooting just from main()
* A test
* Test and fix is_main
* CC
* review
* ismain vs is_running
* is main to is main script
* Remove unused member variable
* Fix is main variable
* Update manticore/core/manticore.py
Co-authored-by: Eric Hennenfent <[email protected]>
* review
* blkn
* Betteer Exception handling
* Lint and test
Co-authored-by: Eric Hennenfent <[email protected]>
* Use merge SHA instead of head
Github Actions doesn't update the head variable despite the checkout action merging the active branch into `master`, so the commit range specified was invalid
* Start from common ancestor
* Omit explicit SHA
* Lint HEAD instead of merge
* Manually fetch base SHA
* Print the names of files to be diffed
* Update ci.yml
* Modify a Python file
* Blacken everything that was missing
The modified files got missed due to black not properly running on our CI
* Experimental coverage changes
Tells coverage.py to record coverage for individual test cases, and makes CodeCov tolerate a small drop in overall coverage percentage to account for nondeterministic gas tests.
* Use workspace
* Remove explicit concurrency type declaration
Appears to break use of subprocess in integration tests
* Eliminate dynamic context
* Make all CI respect rcfile
* Use environment variable
* Rewind cpu when ConcretizeArgument is raised in system call
* Remove unused ConcretizeSyscallArgument
* Add test for symbolic system call argument
* Roll back PC during handling of ConcretizeArgument
This accomplishes the same thing as before but now the movement is done
in the parent state instead of children states
* Statically link test executable
* Use simple checkpoint and rollback for PC
* Rework checkpoint and rollback in exception-handling
* Create rollback function in State
This is to make sure we don't miss anything when adding future values
* Define only one local variable for exception data
* Remove unused import
* Less verbosity in test
* Rollback in parent state instead of children states
* Always rollback state on Concretize*
* Use typing.NamedTuple
Thank you @bradlarsen
* Use local checkpoint variable
We don't access checkpoint data anywhere else aside from the `execute`
function
* Add type hint to test
Co-authored-by: Brad Larsen <[email protected]>
* Use more specific language in test comment
Co-authored-by: Brad Larsen <[email protected]>
* Remove outdated function name in comment
* Fix missed refactor
* Remove unneeded testing changes after refactor
Co-authored-by: Brad Larsen <[email protected]>
* Fix inheritance magic nonsens and add plugin enable/disable
* CC
* Better Plugin default
* Fix enabled default
* Trying to generalize enable/disable for plugins
* Merger is the only plugin using locked context correctly
* Fix plugin context name
* text to enum