- blx <Rm> swaps mode appropriately
- asr.w and lsr.w in thumb mode handle immediates for op2 correctly
- unit tests for thumb mode behavior for shifting instructions
- unit tests check for correct mode on BX and BLX instructions
* Wip refactoring
* Executor and exceptions refactor wip wip
* Fixing all_insts auto tests
* Visited and generate testcase now at manticore api level
* Aggregating state statistics into executor statistics
* Wip refactoring
* Executor and exceptions refactor wip wip
* Fixing all_insts auto tests
* Visited and generate testcase now at manticore api level
* Aggregating state statistics into executor statistics
* forwarding events wip
* state setstate fix and setup_stack merge fix
* will_terminate_state fix and tests skipped
* Update all ConcretizeRegister and ConcretizeMemory
* Wip refactoring
* Executor and exceptions refactor wip wip
* Fixing all_insts auto tests
* Visited and generate testcase now at manticore api level
* Aggregating state statistics into executor statistics
* Wip refactoring
* Executor and exceptions refactor wip wip
* Fixing all_insts auto tests
* Visited and generate testcase now at manticore api level
* Aggregating state statistics into executor statistics
* forwarding events wip
* state setstate fix and setup_stack merge fix
* will_terminate_state fix and tests skipped
* Update all ConcretizeRegister and ConcretizeMemory
* Exceptions are crazy crazy crazy
* fix last merge
* Merge merge until it pass
* Instructions count default to 0
* will/did execute/emulate
* Delayed keybpoard interrupt now shutdowns nicely
* fix auto test generator x86
* Undo bad merge
* utterly hopeless
* basic working
* Fix merge bugs and github comments
* Remove unnecesary comment - github comments
* trace_item not used there
* model-platform and system.py fixed
* backup/restore to store/load -- cpu.instruction property
* Slightly better did/will naming and dynamic signal forwarding
* platform.constraints and cpu.instruction as properties
* Fix forward signals getattr
* set las decoded pc at decode_instruction() / reenable instruction_cache
* Signals name convention: did/will/on
* Forward normal signals
* Maintain last decoded pc in abstractcpu
* Changed context manager so it just wont raise interrupt
* Decree now forwards signals and sets constraints
* linux.SymbolicFile does not need to maintain constraints
* remove debbug print
* Assimilating some PR commets
* size_total == size
* better merge of manticore.py
* typo
* Forwarding only specified objects in signal arguments
* Fix few broken tests
* revert + merge
* remove some unused stuff from manticore()
* manticore context <-> executor context
* manticore context <-> executor context2
* context context context
* forgotten return
* Fix basix.arm
* arm bitwise fix
* fix context
* Comment 1
* Comment 2
* Comment 3
* Comment 4
* Comment 5
* Comment 6
* Fix (still needs refactor but it works) profiling
* Fix (still needs refactor but it works) profiling
* The forgotten bit
* Update tests to reflect current output
* Verbosity fix
* Fix verbosity test
* Feature changes to support concrete execution.
- Add ctypes to lseek for signed seeks. Pass whence to seek.
- Move mmap and related functions from SLinux to Linux.
- Introduce function _sys_open_get_file to isolate symbolic code in sys_open to SLinux.
* Remove white space, use super(...)._sys_open_get_file, self.current.address_bit_size.
Currently, we no verbosity level do we activate debug level logging
from the executor, however there is significant debug logging in the
executor for state forking output.
* nits for common Socket/File FD operations
* rev
* _is_open changed to _assert_open throwing IndexError
* reverted NotImplemented in File sync()
* moved sys_fstat from SLinux to Linux & fixes for _assert_open
* nit in sys_write
* comment nits
* Add MOVT instruction
* Add new ARM operand types for MRC
* mrc implementation seems to work
* UXTB inst implemented, provisional implementations of LDREX and STREX
* Added unit tests for MRC, MOVT, and UXTB
* Added mode swapping from blx instruction on arm cpu
* Make tests pass
* make SymbolicFile inherit from File
* Create linux.py
Nit from merge (restore class to inheriting from File)
* Fixes on file creation
* revert of __stdin__ in assert
* removed asserts in SymbolicFile init
* Add is_full() so sys_write can be generic
* Refactor Linux.sys_write to use File/Socket.write
Previously it used .transmit, which does not exist on Files. Remove
.transmit from Linux.Socket as that's a Decree artifact and it is more
linuxy to use write
* Support list arguments in File.write
* Revert accidental decree change
* Script for generating syscall tables
* Add generated syscall table
* Reintroduce tracing script
* Add configuration options needed by verify.py
* Clean up verify; remove dependency on experimental after_hook
* trace experiments
* reorg verify.py
* Update after merge
* Remove Manticore param
* Remove unused vars
* Use regfile api; redo last_instr check
* Fix gdb->mcore name descrepancy
* Move kwargs to explicit args for Linux/SLinux
* Maintain options in makeLinux to not overcomplicate the Manticore
class
* Address merge issues
* remove debug stmt
* Reintroduce options
* Revert linux.py/manticore.py from master
* Use the qemu -s and -R flags
* Import syscalls table from master
* And import extract_syscalls.py script
* Fix verify reference
* Move syscall to arg
* Update register references
* Simplify last instruction check
* Add logging filter to TRACE logger as well
* Be consistent with state synchronization
* Be explicit about gdb types
* Improve mmap debug output
* Return error if ioctl is not implemented
* Fix syscall sync
* Make logging more self-contained
* Use errno const in ioctl impl
* add solve_buffer to api and update google ctf script to use it
* start adding push/pop_constraints functionality
* remove push/pop constraints, just use with
* add mark's changes
* add solve_buffer to api.rst
* fix typo
* Add input-related features
* Add add_symbolic_file() function to Manticore
-> Add symbolic file: m.add_symbolic_file('file.txt')
-> 'symbolic.txt' is not longer a default symb file
* Symb files are generated by Executor.generate_testcase()
* Add generate_inputs() function to State
-> can be called by an user-level script
* Use of Executor._getFilename to generate symb files in the workspace
* Consolidate the filename of generated symb files
* - replace % with format in executor.generate_testcase / state.generate_inputs
- replace file() with open() in executor.generate_testcase / state.generate_inputs
- replace hasasttr with getattr in executor.generate_testcase / state.generate_inputs
- use None as default arguments for symbolic_files
* file -> open
* Simplify symbolic_files param
* Make filename uniform
* Docstring clean
* Add variadic decorator
* Add check for _variadic func attribute
* Expose @variadic at top level
* Use variable for the actual name of attr
* Update naming
* Use helper
* Maybe more pythonic?
* Add variadic to public API
* Add variadic decorator tests
* Clean
* Remove variadic parameter
* Add docstrings
* Document parameter
* Clean
* Better use of autodoc
* Update docstring
* Add todo comment
* Remove the use of the incremental mode in get_all_values
* Improvement and bug fixes in visitor.py
* PretyPrinter: Remove dupplicate printed information
* TranslatorSmtLib: Remove dupplicate operands in the generated formulas
* ConstantFolderSimplifier:
* Add new operators (BitVecZeroExtand / BitVecExtract)
* Add no-trivial operators into the operations dict
-> users can known that these operators are handled
* ArithmeticSimplifier:
* Use of a recursive approach to visit expression (faster)
* Fix the missing calls to no-trivial operators for constant folding
* Add new operator (ArraySelect)
* Fix issues on corner cases (tests/travis_test.sh ok)
ArithmeticSimplifier: recursive approach less interesting in travis_test.sh
Use a stack approach, which includes bugfixes of the original
* - Call direclty constant_folder() in ArithmeticSimplifier
- Remove None bindings in ConstantFolderSimplifier.operators
- Move the fixed point thing direclty to the Visitors.visit (new parameter: use_fixed_point)
* - Calling constant_folder only if all operands are constants
- Add None default attribute to getattr
* Clean up model syscall invocation
* Move read_string to Cpu
* move push/pop helpers to Cpu
* Reorg Linux initialization
* Update linux test
* fstat64 test harness
* assert read_string only considers concrete bytes
* Ensure that correct aliases exist during ctor
* Improve alias check