* Update makefile; add a list target for testing
* simplify nostdlib example
* Make sendmail example return success
* Add tests to run all examples
* Add some targets to exclude
* Run example scripts; temporarily add a workspace accsesor to mcore
* Optionally read end of main from argv
* Make concolic test more robust
* Clean up Makefile
* Be better with phony targets
* Add run_simple and state_control tests
* verbosity++
* Make sure we fail when we intend to
* Simplify travis_test.sh
* Remove multi_arch_sym
* Clean examples/evm, add a new one
integer_overflow.py -> simple_int_overflow.sol
simple_functions.py -> simple_multi_func.sol
simple_transaction.py -> simple_value_check.sol
* Add umd example
* 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
* Initial implementation of concolic algorithm (#574)
* Fix coverage calculation vs. metadata (#529)
* Fixes symbolic reentrancy example
* Fix coverage Issue# 527
* Remove debug unused code
* Various bug fixes. (#530)
* Fixes#503
* Fixes#515
* Fixes 272. Concretize data written to a fd.
* Revert debug hack and fix overly broad exception
* Update did/will_exec_instr semantics
* Clean up imports
* Update logging and improve sys_open return
* Update variable names+doc for consistency
* Remove win32 support (#535)
* Remove Windows support files
* Remove Windows test files
* Localize log formatting changes (#547)
* Don't add custom format string to root logger
* Fix handler propagation
* Move inline function definitions out of the AbstractCPU's execute method (#538)
* 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
* Fix all integral type checks that forget long (#555)
* [fix] Issue #550: generates extra workspace folder (#557)
* [fix] Issue #550: generates extra workspace folder
Signed-off-by: Cole Lightfighter <cole@onicsla.bz>
* Slight workspace and store refactor
* Handle file.tell() error, which will happen for special files (/dev/tty) (#559)
* Fix SLOAD invalid memory access (#562)
Check global_storage includes an entry at address before trying to load
storage.
* New API for EVM analysis (#551)
* 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
* Add PCMPXSTRX Instructions (#507)
* Add PCMPXSTRX Instructions
* bug fixes
* unittest related fixes
* Full test of pcmpxstrx
* Move tests
* Fix typo per issue #552 - s/arm64/amd64/ (#561)
* Added missing syscalls in decree syscall trace (#545)
* added missing syscalls in decree syscall trace
* added missing parameter in callback of BranchLimited policy
* progress
* can flip constraint set
* hack around double decl issue
* can gen input
* what is this, a coding interview?
* did it?
* clean
* finish
* pretty log messages
* comment, clean
* more cleaning
* cmt
* Only really fork when there's multiple solutions (#569)
* Update comment and path
* Add UMD simple assert example (#573)
* Manticore prints linux ret code as uint instead of int (#578)
* Fixing raise issue #435
* syncing git
* Fix Bug #570
* syncing
* removed all binaries
* missed one file
* Updates travis cache to python 2.7.13 (#576)
* Updating README with solc binary requirements (#575)
* Updating README with solc binary requirements
* Update README.md
* Assert valid operand length (#558)
* 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
* Fix for issue 556 and 591 (#590)
* version argument in manticore
* Fix 591 - Exception Handler
* Fix Issue: 597 - Remove unused policy argument in function State.solve_n (#598)
* version argument in manticore
* Fix 591 - Exception Handler
* Issue 597 - Remove the unused policy argument
* Fixes to thumb mode instruction implementations
* Thumb specific fixes to the SUB, BX, and MOV instruction implementations
* implemented hardcoded result for gettid syscall
* Trace following mode (#513)
* 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
* Centralize system call logging (#602)
* Remove per-syscall logging
* Make Cpu.read_string() stop reading at first symbolic byte
* Centralize syscall logging
* Update helper docstring
* Update arg/ret expansion
* Check for issymbolic first
* Tiny hex format change
* Log unimplemented instructions (issue 163) (#599)
* Remove double printing of exception.
* Pretty print the unimplemented instruction raised by unicorn (UcError).
* Raise exception after unimplemented instruction error logging.
* Ensure the raised exception is actually a unicorn invalid instruction error.
* Resolve conflict
* EVM assembler/disassembler doc and cleanup (#563)
* 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
* EVM api refactor (#589)
* 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
* Fixed Issue #533 (#606)
* Remove Platform._path
* Amend pr guidelines (#615)
* Fixed Issue #619 (#623)
Add newlines in .trace file generation
* Hide legacy cli flags from cli help (#622)
* Fixed Issue #533
* Removed --replay argument from cli help. Issue #617
* Update help description
* Remove unused --size flag
* Emit .input instead of .txt files in workspace (#625)
Related: #612
* Update workspace.py
Changed extension to .input
* Update test_workspace.py
* changed key value pair in test_workspace bc of change of extension to .input in workspace.py, fixed issue #618
* removed unwanted directories
* Update seth.py
* Update seth.py
Change in Documentation issue #612
* EVM refactor and simple UI (#629)
* 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
* Initial eth cli based on solidse.py (#633)
* 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
* evm: Make 'not enough funds' states finalized states (#636)
* print on every
* terminate not enough fund states
* Better check
* revert debug change
* Implement initial evm workspace, fix small bugs (#638)
* 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
* Detectors () (#637)
* 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
* Refactor concolic implementation (#601)
* Refactor concolic.py
* make arg name more descriptive
* A few cleanups
* Keep track of traces
* Added perm() description
* Rm meaningless paths variable
* little comment
* rm bug comment
trace set is the correct solution; we need to filter out satisfiable but
redundant paths that are generated by the dumb permuter
* clean comments, debug stuff
* Better EVM workspace output (#641)
* 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
* New workspace output
* Fix examples
* wrog merge fix
* Fix examples/new api
* Fix examples/new api/output
* More output
* More doc
* Broken examples deleted
* Debug code removed
* Wrong docstring
* Update evm __main__
* Update evm __main__
* Update evm __main__
* Update evm __main__
* Update evm __main__
* Fix TODO
* Fix for issue #642 (#643)
* version argument in manticore
* Fix 591 - Exception Handler
* Issue 597 - Remove the unused policy argument
* fix issue 642
* Fix z3 oddity: reset vs optimization (#627)
* 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
* Fix compilation bug (#645)
* fix for #608 using a local definition (#644)
* refactor logs files content (#646)
- if no logs just print nothing
- output any printable bytes in the memlog as a convenience in case they logged strings
* 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
* 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
* 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
* WIP New Policy class
* WIP pubsub
* Update Signal tests
* EVM support - Wip
* EVM support - dependencies fixed
* EVM support - fix decree merge
* fix decode instrucion event
* Fix small bugs in evm opcodes (too many arguments + wrong LOG name) (#380)
Fix wrong call parameters + typo
* Fix Create/Call
* Fix depth
* Default fixed point in arithmetic simplifier
* small fixes from github comments
* Fix event decode_instruction signature
* wip wip
* Auto tests for evm
* New EVM tests
* Ran 9556 FAILED (failures=166, errors=8, skipped=62)
* Fix some arithmetic instructions
* Ran 9556 FAILED (failures=136, errors=8, skipped=62)
* More instructions - Optimizing symbolic memory
* Added gas to opcodes description - FIX DELEGATECALL POPS
* Add wip wallet example
* The tests
* Solidity constructors need argument after bytecode
* Simple integer overflow working
* Good merge
* Good good merge
* WIP manticore refactor
* Fix default old-style initial state
* context now working
* Fix context serialization
* Fix test models. Can not set a state constraints
* typo
* A few typos (constraints setter) and use of public properties in internal methods
* Fix init wallet example
* State __init__ needs to initialize platform constraints
* Internal methods use internal properties
* Better attack modeling
* Better example layout
* Storage backup on CALL is now faster .. and correct
* Add LOG support
* Minimal SE test
* Added examples
* Send ether bugfix
* EVM: Fix wrong balance destination on CALL + decrease caller balance on CREATE
* New balance management
* Trying to maintain known hashes
* Known hash concretization policy
* CALLDATA max size bugfix
* Minimal SE example
* Remove evm tests
* 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
* Fix visitors oddity
* setup merged
* remove duplicates and add pysha3
* Remove EVMTests import
* Refactor platform specific code out of ManticoreOutput (#505)
* Initial moving work
* Clean
* Make linux.generate_workspace_files work
* Fix
* clean
* Add test
* Test workspace for platform files
* Skip EVM cpu pretty print
* Remove bad import
* Fix coverage.py for testing
* Clean comment
* Comment hack
* Print evm cpu
* pretty print evm world instead of platform
* delet old scripts/examples
* delet old tests
* Remove z3 install script
* Array.max_size can be None, include check for that
* Rm unused _symbolic_files
add_symbolic_files was moved to linux, so this is not needed
* Rm unused args
* Import evm
* Rm dup function
* Rm stray prints
* Add docs for new classmethod apis
* minimal
* minimal example
* fix minimal
* Fair symbolic SHA3 handling
* Simple mapping example
* coverage example
* fix tests
* fix minimal
* Some eko fixes
* New SETH
* integer_overflow refactored
* Fixing the examples
* init_bytecode -> init
'
* Concrete reentrancy exampole
* concrete reentrancy selfdestruct
* Update minimal.py
* It's a new Minimal
* Integer overflow example
* New minimal
* minimal fix
* Examples last minute fixes
* Remove debug print
* add plugin.py
* Fixing event subscription
* remove temp params
* Remove param
* Update uncovered will_exec callback prototype
* Clean up debug output
* Automatically generated intruction tests
* Uninplemented instruction test removed
* Unused concretization policy removed
* Fixes enabling default bplugins
* solc from PATH
* Removed unused import
* Logger name updated
* Use locked_context() in count_instructions example
* We use this example on the front page, and it currently generates
a flood of warnings.
* Update example indeces
* Remove dump_stats()
* Remove extra comments
* Remove redundant comments
* Add a descriptor class for socket(2) return values
* Add basic socket(2) and bind(2)
* Basic accept(2)
* Basic recv(2) support
* Debug statements and accept(2)
* Add check for symbolic arg to open(2)
* Fix an example warning
* send/sendfile
* debug->info for some mcore output
* Produce socket data as part of state serialization
* Clean up SLinux.sys_open()
* Document socket(2) peculiarities
* Install instructions updates
* Update README.md
* also need pip
* need to update, plus compact a few things
* add -y
* grammar?
* typos
* Add bountysource link
* consistency
* Point users to the examples dir and wiki
I thought these links were cluttering things a bit, and 2 out of 3 of
them aren’t official documentation yet we’re linking to them in the
first line of the README. I updated the wiki to address these directly
in a way I think is more clear.
* link to Z3 releases
* oops, don't know where that came from
* ensure people run the latest pip
* be more explicit
* Add an Issue Template
* be more explicit
* no longer appropriate here
* unnecessary
* add note about 16.04
* move issue template to hidden folder
* Spelling
* be explicit, makes copy/paste easier
* Add example taint usage
- use new_symbolic_value API instead, because it's making an int symbolic
- add every instruction hook that checks for tainted data in operands
* update readme with taint example
* Make Manticore behave like a dict; slim callback
* Update all sample scripts to not take a context
* Add a sample script (count_instructions.py)
* We no longer need to close over Manticore state; add callback directly
* Move Manticore's context to a public attribute
* Remove ManticoreControl object
* Some changes were brought in from dev-symbolicate-api
* Add Manticore.terminate()
* Add State.abandon()
* Update sample scripts
* Remove ctl from README
* Fix tests
* Bring in changes from dev-symbolicate-api
* Lower-case wildcard
* string -> cstring
* abandon() docstring
* Rename "name" to "label"
* Remove obsolete comment
* Make NUL a possible value for the last byte of a cstring
* Fix AbandonState and add example binary&script
* name -> label in tests, manticore.py
* Ignore .DS_Store
* Update symbolicate_buffer docstring