* make init_logging() idempotent
* Update logger names; add plugin logger
* Add logging support to main
* Start tracking completed transactions as part of ManticoreEVM
* Make evm and non evm output more consistent
* Remove redundant start_workers
* make debug output conditional in Manticore
* Improve seth logging
* Add seth to logger lists and make sure new loggers are initialized
* Make completed_transactions not lie during the processing of one
* Print coverage after processing a transaction
* Demote starting msg to debug
* Fixes symbolic reentrancy example
* Fix coverage Issue# 527
* Remove debug unused code
* New solidity biased API and reporting
* Updated examples to new api WIP
* simple_mapping FIXED. new api
* Simple transaction example added. msg.value can be symbolic now
* Reentrancy symbolic now updated to new API + bugfixes
* Doc and cleanups in evm assembler
* EVMInstruction -> Instruction
* cleanups
* typo
* deepcopy in Constant
* Better EVM-asm api and doc
* some docs
* More evm asm docs
* Initial seth in place refactor
* Fix import *
* typo
* newline between text and param
* similar phrasing to all the other flags
* typo
* typo
* fix function name in comment
* sphinx newline
* documentation fixes
* documentation fixes
* refactors
* EVMAssembler to EVMAsm
* Fix evm @hook signature
* EVMAsm
* WIP seth doc
* WIP move seth
* seth moved to manticore module
* Fixed DUP and typo
* Slightly better evm reporting
* review
* review
* Removed unfinished refactor
* Mitigates the wrong objectives print in z3 4.4.x
* Exception to SolveException
* Fixes symbolic reentrancy example
* Fix coverage Issue# 527
* Remove debug unused code
* New solidity biased API and reporting
* Updated examples to new api WIP
* simple_mapping FIXED. new api
* Simple transaction example added. msg.value can be symbolic now
* Reentrancy symbolic now updated to new API + bugfixes
* Doc and cleanups in evm assembler
* EVMInstruction -> Instruction
* cleanups
* typo
* deepcopy in Constant
* Better EVM-asm api and doc
* some docs
* More evm asm docs
* Initial seth in place refactor
* Fix import *
* typo
* newline between text and param
* similar phrasing to all the other flags
* typo
* typo
* fix function name in comment
* sphinx newline
* documentation fixes
* documentation fixes
* refactors
* EVMAssembler to EVMAsm
* Fix evm @hook signature
* EVMAsm
* WIP seth doc
* WIP move seth
* seth moved to manticore module
* Fixed DUP and typo
* Slightly better evm reporting
* review
* review
* Removed unfinished refactor
* Various refactors. Auxiliar for calculating % coverage
* Change report in examples
* Detailed transactions and reporting accessible to the user2
* Fix on Expression Array
* Some documentation
* Get full ABI from solc compiler
* evm/examples -> bugfixes
* Clarify try/except blocks
* Code review
* Code review
* Code review
* Code review
* Code review
* Initial detector plugin. integer overflow and unitialized mem
* Better metadata handling and new events for detectors
* detectors wip
* Better name for internal findings context
* Explicit detector register
* review
* print on every
* save the bytecode to look at later
* update tuple
* wip workspace files
* wip
* generate tx files
* rm unused event handler
* clean up solving for tx.data
* Revert "print on every"
0caaae3658a169c9763c51544aa3c79a4e3940ca
* Fixes symbolic reentrancy example
* Fix coverage Issue# 527
* Remove debug unused code
* New solidity biased API and reporting
* Updated examples to new api WIP
* simple_mapping FIXED. new api
* Simple transaction example added. msg.value can be symbolic now
* Reentrancy symbolic now updated to new API + bugfixes
* Doc and cleanups in evm assembler
* EVMInstruction -> Instruction
* cleanups
* typo
* deepcopy in Constant
* Better EVM-asm api and doc
* some docs
* More evm asm docs
* Initial seth in place refactor
* Fix import *
* typo
* newline between text and param
* similar phrasing to all the other flags
* typo
* typo
* fix function name in comment
* sphinx newline
* documentation fixes
* documentation fixes
* refactors
* EVMAssembler to EVMAsm
* Fix evm @hook signature
* EVMAsm
* WIP seth doc
* WIP move seth
* seth moved to manticore module
* Fixed DUP and typo
* Slightly better evm reporting
* review
* review
* Removed unfinished refactor
* Various refactors. Auxiliar for calculating % coverage
* Change report in examples
* Detailed transactions and reporting accessible to the user2
* Fix on Expression Array
* Some documentation
* Get full ABI from solc compiler
* evm/examples -> bugfixes
* Clarify try/except blocks
* Code review
* Code review
* initially evm cli from solidse.py
* rm prints, make import work
it's just `import seth` because this file runs from the perspective
of being inside the package. `from manticore.seth` doesn't work
because manticore.py gets priority over the manticore package, and
there is no seth entity inside manticore.py
* rm wip cli file
* add excess printing as a big comment
* print minimal report
* require .sol only
* rm solidse again
* rm fluff
* Fixes symbolic reentrancy example
* Fix coverage Issue# 527
* Remove debug unused code
* New solidity biased API and reporting
* Updated examples to new api WIP
* simple_mapping FIXED. new api
* Simple transaction example added. msg.value can be symbolic now
* Reentrancy symbolic now updated to new API + bugfixes
* Doc and cleanups in evm assembler
* EVMInstruction -> Instruction
* cleanups
* typo
* deepcopy in Constant
* Better EVM-asm api and doc
* some docs
* More evm asm docs
* Initial seth in place refactor
* Fix import *
* typo
* newline between text and param
* similar phrasing to all the other flags
* typo
* typo
* fix function name in comment
* sphinx newline
* documentation fixes
* documentation fixes
* refactors
* EVMAssembler to EVMAsm
* Fix evm @hook signature
* EVMAsm
* WIP seth doc
* WIP move seth
* seth moved to manticore module
* Fixed DUP and typo
* Slightly better evm reporting
* review
* review
* Removed unfinished refactor
* Various refactors. Auxiliar for calculating % coverage
* Change report in examples
* Detailed transactions and reporting accessible to the user2
* Fix on Expression Array
* Some documentation
* Get full ABI from solc compiler
* evm/examples -> bugfixes
* Clarify try/except blocks
* Code review
* Code review
* Fixes symbolic reentrancy example
* Fix coverage Issue# 527
* Remove debug unused code
* New solidity biased API and reporting
* Updated examples to new api WIP
* simple_mapping FIXED. new api
* Simple transaction example added. msg.value can be symbolic now
* Reentrancy symbolic now updated to new API + bugfixes
* Doc and cleanups in evm assembler
* EVMInstruction -> Instruction
* cleanups
* typo
* deepcopy in Constant
* Better EVM-asm api and doc
* some docs
* More evm asm docs
* Initial seth in place refactor
* Fix import *
* typo
* newline between text and param
* similar phrasing to all the other flags
* typo
* typo
* fix function name in comment
* sphinx newline
* documentation fixes
* documentation fixes
* refactors
* EVMAssembler to EVMAsm
* Fix evm @hook signature
* EVMAsm
* WIP seth doc
* WIP move seth
* seth moved to manticore module
* Fixed DUP and typo
* Slightly better evm reporting
* review
* review
* Removed unfinished refactor
* Fixes symbolic reentrancy example
* Fix coverage Issue# 527
* Remove debug unused code
* New solidity biased API and reporting
* Updated examples to new api WIP
* simple_mapping FIXED. new api
* Simple transaction example added. msg.value can be symbolic now
* Reentrancy symbolic now updated to new API + bugfixes
* Doc and cleanups in evm assembler
* EVMInstruction -> Instruction
* cleanups
* typo
* deepcopy in Constant
* Better EVM-asm api and doc
* some docs
* More evm asm docs
* Fix import *
* typo
* newline between text and param
* similar phrasing to all the other flags
* typo
* typo
* fix function name in comment
* sphinx newline
* documentation fixes
* documentation fixes
* EVMAssembler to EVMAsm
* Fix evm @hook signature
* EVMAsm
* EVMasm refactor
* WIP New Policy class
* WIP pubsub
* Update Signal tests
* small fixes from github comments
* Fix event decode_instruction signature
* Good merge
* Good good merge
* WIP manticore refactor
* Fix default old-style initial state
* add -> enqueue
* @m.init
* Fix workspace url
* Some test skipped
* Ad Fixme to platform specific stuff in State
* add -> enqueue
* Enqueue created state
* Fix m.init
Use a messy hack to adhere to the spec (callback func receive 1 state argument)
* Add _coverage_file ivar to Manticore
* Fix symbolic files
* remove extra enqueue
* Fixing __main__
* comments
* Experimental plugin system
* tests fixed
* Fix plugins
* Some reporting moved to plugin
* Fix assertions test
* Add published events to classes that publish them
* Update how we verify callbacks
* Update Eventful._publish
* Yet another flavor for event name checking
* really it's a bunch of minimal bugfixes
* Remove get_all_event_names from Plugin
* Update where we get all events
* Use new metaclass-based event registry
* Initial concrete trace follower
* Add extended (json) trace support
* More stubs for condition gather
* Update trace saving to new format
* Produce trace regardless of contents
* Record register deltas in trace
* Move initialization to _start_run so we can call run() multiple times
* Re-fix multiple workspace bug
* Fix it correctly
* Add extended trace and accessors
* make sure did_execute_instruction is always published
* Produce a consistent version
* move extended tracing to separate class
* Reorg of extended tracing plugins
* Add concolic tracing script
* Clean up old hooks
* Sync memory as well; cleanups
* Revert binary tests
* simplify concolic follower
* Move trace follower to plugin.py
* Simplify follower
* Add skip ranges to Follower
* Update concolic.py
* Remove redundant state init
* Clean up driver script
* Update header line
* Move trace follower
* Move Follower to follow_trace.py
* rm unused import
* Remove unnecessary property
* rm ConcreteTraceFollower
* Revert start_run behavior
* Assert valid bytecode and operand length
EVM bytecode comes in 32-byte chunks, and contracts require at least one
segment to be created. An example, originally written by @ggrieco-tob in issue #546, is included.
Unsure what expected behavior should be, but initial state has a problem when a contract is
created with a single byte.
Also added some exception handling in `parse_operand()` to catch invalid
instructions, e.g. a PUSH1 instruction followed by no bytes.
Signed-off-by: Cole Lightfighter <cole@onicsla.bz>
* Fix SLOAD invalid memory access
Simple check to ensure address storage is in global_storage before
attempting to load data.
* Remove invalid assertions
* Fixes symbolic reentrancy example
* Fix coverage Issue# 527
* Remove debug unused code
* New solidity biased API and reporting
* Updated examples to new api WIP
* simple_mapping FIXED. new api
* Simple transaction example added. msg.value can be symbolic now
* Reentrancy symbolic now updated to new API + bugfixes
* This change moves from inline function definitions out of the critical path of AbstractCpu's execute method.
* Raise a mcore exception if we fail at emulation