* Manticore 0.3.0
* Explicitly note lack of Constantinople support
Will hopefully head-off people with issues regarding unimplemented instructions and incorrect behavior
* Add blurb about solver
* Link to state machine diagram
* Fix typo
* Fix duplicated section
And fix date
* Add black to CI tests
I'd rather have blackening be an optional check, but this will work for now
* Yep, messed up Travis
Again, sorry about the commit spam
* Bump accepted line length to 120
Going to auto-format at 100 but will allow 20% overruns
* Blacken
* Cap line length at 100
rip my undisciplined coding habits
* update black on the fly if necessary
* Ignore CC errors
* Only check modified files
* Only python files
* Re-blacken post merge
* Re-Blacken
* Fix deleted files
* Explicitly invoke python
The +x must not have gotten commited
* Forgot to blacken again
Hoisted on my own petard
* Re-blacken
Tests are green and we discussed this at the dev meeting, so I'm going to go ahead and merge
* Hardcode the set of registers we expect to pass
* More verbose error message
* Remove vector regs
* Add assertions to auto test gen
* Add symbolic tests
* Make calldata symbolic
* EVM: Support exp aka pow (#1361)
* EVM: Add support for EXP with concrete/solvable exponent
Adds support for EXP aka POW, with concrete or solvable exponent, fixing https://github.com/trailofbits/manticore/issues/1005 effectively.
Not sure if we can do it any better - it seems z3 doesn't have exp/pow for bitvectors.
* Update operators.py
* Update evm.py
* Use concretized_args
* Move Operators.POW to EVM._exp
* Extend travis wait for output to 30m
* Extend travis build to 60m...
* Fix Operators.ITE -> Operators.ITEBV
* Split ethereum travis job to two jobs
* EVM.EXP: concretize base=SAMPLED
* Fix concrete tests: use to_constant
* Fix set storage in concrete tests
* Split ethereum_vm tests into concrete and symbolic
* Fix travis tests
* Split symbolic tests into two jobs
* Split VMTests even more
* More tests split
* [WIP][WIP][WIP] Moving executor functionality to ManticoreBase and refactor concurrency shared data
* Workspace locks
* Concurrency flavor configurable from commandline
* Asserts and refactorrrrrrrs
* Remove unused callback
* Some CC
* Some CC
* Some CC
* Fix solver vs Z3Solver
* Make solver a singleton based on tid/pid. REfactor m._save. Fix some tests
* typo and evm bugfix
* Fix some tests referecing global solver
* Fix concolic tests and more global solver refs
* Fix tests
* CC fixes
* Fix tests. Fix testcase id generation
* Move profiling to a plugin and fix tests
* Add solver intance ref to mem test
* Fix mem workspace tests
* Fix output checking tests
* Fix z3solver ref
* Relax verbosity/log tests
* Moved Workers to its own file
* Relax output tests
* Relax output tests
* Fix profiling test
* Fix more tests
* Default multiprocessing
* Try to clean mcore __del__
* Change Worker life span
* Fix Single mode
* CC
* revert verbosity travis
* CC and solver ref fix
* Relax ouput checking tests and some bugfixes
* running -> ready
* Fixing teeests
* add weak cache to _load
* del debug prints
* Adding config.py support for Enums
* Try/Remove generate_testcase event as it never occurs online. Fix tests
* Fix CC
* Kill the cache when start/stop run. Remove debugprints. clean tests
* Fix travis test _other_
* Fix native tests and timeout
* Fix state.must_be_true
* fix CC
* Changing fstat tets...:
~'
* LLLLLLLLinux tests
* Skip unicorn concrete test for now
* Try fix CodeClimate
* Try fix CodeClimate
* Update evm examples to newest solidity
* Complete transformation of consts.mprocessing to enum
* Add blank line (codeclimate)
* Using the enum instead of the string
* Using the enum instead of the string
* Merge and fix
* CC and debug print
* Move fee consumption to checkpoint so it is not done twice. Fix frontier test generator
* Fix Job Count (and force travis rebuild)
```
0.02s$ ./cc-test-reporter sum-coverage --output - --parts $JOB_COUNT coverage/codeclimate.*.json | ./cc-test-reporter upload-coverage --input -
Error: expected 3 parts, received 4 parts
```
* Add tx number to testcase log
* Attempt to do vmtests on the fly
* Del test verbosity
* Update .travis.yml
Co-Authored-By: Eric Hennenfent <[email protected]>
As noted, we should roll this back whenever Unicorn pushes to PyPi
* Remove write to Unicorn x86 FS register
In latest version of unicorn (778171fc9546c1fc3d1341ff1151eab379848ea0)
a write to FS will cause segfault or hang if we try to write to it.
Issue #1434
* Update unicorn dependency to latest commit on master
Latest Unicorn master commit is 778171fc9546c1fc3d1341ff1151eab379848ea0
Issue #1434
* Add assertions to auto test gen
* Add symbolic tests
* Make calldata symbolic
* EVM: Support exp aka pow (#1361)
* EVM: Add support for EXP with concrete/solvable exponent
Adds support for EXP aka POW, with concrete or solvable exponent, fixing https://github.com/trailofbits/manticore/issues/1005 effectively.
Not sure if we can do it any better - it seems z3 doesn't have exp/pow for bitvectors.
* Update operators.py
* Update evm.py
* Use concretized_args
* Move Operators.POW to EVM._exp
* Extend travis wait for output to 30m
* Extend travis build to 60m...
* Fix Operators.ITE -> Operators.ITEBV
* Split ethereum travis job to two jobs
* EVM.EXP: concretize base=SAMPLED
* Fix concrete tests: use to_constant
* Fix set storage in concrete tests
* Split ethereum_vm tests into concrete and symbolic
* Fix travis tests
* Split symbolic tests into two jobs
* Split VMTests even more
* More tests split
* [WIP][WIP][WIP] Moving executor functionality to ManticoreBase and refactor concurrency shared data
* Workspace locks
* Concurrency flavor configurable from commandline
* Asserts and refactorrrrrrrs
* Remove unused callback
* Some CC
* Some CC
* Some CC
* Fix solver vs Z3Solver
* Make solver a singleton based on tid/pid. REfactor m._save. Fix some tests
* typo and evm bugfix
* Fix some tests referecing global solver
* Fix concolic tests and more global solver refs
* Fix tests
* CC fixes
* Fix tests. Fix testcase id generation
* Move profiling to a plugin and fix tests
* Add solver intance ref to mem test
* Fix mem workspace tests
* Fix output checking tests
* Fix z3solver ref
* Relax verbosity/log tests
* Moved Workers to its own file
* Relax output tests
* Relax output tests
* Fix profiling test
* Fix more tests
* Default multiprocessing
* Try to clean mcore __del__
* Change Worker life span
* Fix Single mode
* CC
* revert verbosity travis
* CC and solver ref fix
* Relax ouput checking tests and some bugfixes
* running -> ready
* Fixing teeests
* add weak cache to _load
* del debug prints
* Adding config.py support for Enums
* Try/Remove generate_testcase event as it never occurs online. Fix tests
* Fix CC
* Kill the cache when start/stop run. Remove debugprints. clean tests
* Fix travis test _other_
* Fix native tests and timeout
* Fix state.must_be_true
* fix CC
* Changing fstat tets...:
~'
* LLLLLLLLinux tests
* Skip unicorn concrete test for now
* Try fix CodeClimate
* Try fix CodeClimate
* Update evm examples to newest solidity
* Complete transformation of consts.mprocessing to enum
* Add blank line (codeclimate)
* Using the enum instead of the string
* Using the enum instead of the string
* Merge and fix
* CC and debug print
* Move fee consumption to checkpoint so it is not done twice. Fix frontier test generator
* Fix Job Count (and force travis rebuild)
```
0.02s$ ./cc-test-reporter sum-coverage --output - --parts $JOB_COUNT coverage/codeclimate.*.json | ./cc-test-reporter upload-coverage --input -
Error: expected 3 parts, received 4 parts
```
* Add tx number to testcase log
* Del test verbosity
* aarch64: test strb followed by ldrb (immediate)
* aarch64: use the right size in '_ldr_str_immediate'
Discovered due to 'ldrb w11, [x9]' failing in symbolic mode.
* Move unimplemented syscall logging to decorator
Adds [wrapt module](https://wrapt.readthedocs.io/en/latest/) from pypi
* Move unimplemented calls further down
* Add stubs for unimplemented system calls
* Move most stubs back to stub file
A few have been left in linux.py because they're necessary for other projects
* Codeclimate
* Fix discrepancies in syscall ABI
* Removed extraneous void argument for getpid and gettid
* Added missing sigsetsize parameter for rt_sigaction
* Removed incorrect 'flags' parameter on accept (should be on accept4
* Fixed 'SocketDesc' has no attribute 'close' error
* (Partially) Fixed duplicate constraint error with socket file descriptors
* Add gettimeofday and directory handling
* Hacky pipe implementation
Pretend that sockets are pipes and pipes are sockets
* Better support for MSR writing
* Default to success on directory operations
* Codeclimate
* More verbose unimplemented syscall printing
* Fix line overrun before CC calls me out
* Add ftruncate support
* Add link, unlink, and nanosleep
* Add getdents
* Add tests for mkdir and time functions
* Fix codeclimate and force rebuild
* Add pre and post hooks for syscalls
* Fix lingering single quotes
* Handle dumb invocations
* Type-o
* Make emulator follow logging behavior
* CC
* Fix pipe tests
* Fix shadowed name
* Add test for ftruncate
* Add link tests
* Add chmod test
* Rewrite docstrings
Best not to risk licensing issues
* Replace with simple returns
* Strip out unique implementations
Should bring the line count down a bit
* Check that unimplemented syscalls exhibit the proper behavior
* Fix missing keyword 'solver'
* Pass initial states to will_run callback
* Restore debug printouts after run
* Fix existing `init` calls
* Restore old exception behavior
* Move save_run_data to manticore native
* CC
* Refactor finalization call
* Fix save_run_data
I think it makes sense now
* Adjust expected output line counts
* CC [ci skip]
* Rename terminate state on exception to kill state
There's gotta be a better pun about 'overthrowing the state' in there somewhere
* Move time started to manticore_native
* [WIP][WIP][WIP] Moving executor functionality to ManticoreBase and refactor concurrency shared data
* Workspace locks
* Concurrency flavor configurable from commandline
* Asserts and refactorrrrrrrs
* Remove unused callback
* Some CC
* Some CC
* Some CC
* Fix solver vs Z3Solver
* Make solver a singleton based on tid/pid. REfactor m._save. Fix some tests
* typo and evm bugfix
* Fix some tests referecing global solver
* Fix concolic tests and more global solver refs
* Fix tests
* CC fixes
* Fix tests. Fix testcase id generation
* Move profiling to a plugin and fix tests
* Add solver intance ref to mem test
* Fix mem workspace tests
* Fix output checking tests
* Fix z3solver ref
* Relax verbosity/log tests
* Moved Workers to its own file
* Relax output tests
* Relax output tests
* Fix profiling test
* merge
* Fix more tests
* Default multiprocessing
* Try to clean mcore __del__
* Change Worker life span
* Fix Single mode
* CC
* Merge branch 'master' into dev-executor-refactor
* revert verbosity travis
* CC and solver ref fix
* Relax ouput checking tests and some bugfixes
* running -> ready
* Fixing teeests
* add weak cache to _load
* del debug prints
* Adding config.py support for Enums
* Try/Remove generate_testcase event as it never occurs online. Fix tests
* Fix CC
* Kill the cache when start/stop run. Remove debugprints. clean tests
* Fix travis test _other_
* Fix native tests and timeout
* Fix state.must_be_true
* fix CC
* Merge and fix more tests
* Changing fstat tets...:
~'
* LLLLLLLLinux tests
* Skip unicorn concrete test for now
* Try fix CodeClimate
* Try fix CodeClimate
* Update evm examples to newest solidity
* Complete transformation of consts.mprocessing to enum
* Add blank line (codeclimate)
* Using the enum instead of the string
* Merge branch 'dev-executor-refactor' of github.com:trailofbits/manticore into dev-executor-refactor
* Using the enum instead of the string
* Merge branch 'master' into dev-executor-refactor
* Fix solver instance reference
* aarch64: add everything except instructions
Based on disconnect3d/aarch64/skeleton.
* fixup: do not use relative imports
Otherwise, 'scripts/travis_test.sh' fails to work.
* fixup: remove x86-specific code from '_reg_name'
* review: rename the file
* review: avoid wildcard imports
* Revert "fixup: remove x86-specific code from '_reg_name'"
* fixup: support ARM64 in '_reg_name'
Fixes a few CC bugs that made it into master, and marks the "too many functions" issues that we always ignore as wontfix.
Travis is green so I'm just going to merge this.
* Only publish events when there is one subscriber
Performance optimization
* Move sub_events to init.
* Revert "Move sub_events to init."
This reverts commit 0859a63020.
* Update event.py