* 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
This very strictly constrains the arg/env to the length of the symbolic
string which is too strict for many use cases.
For example:
manticore ./bin +++++
that symbolic string would only be allowed to be strings of length 5,
and no shorter.
* Rename libc.py to models.py
* Clean old unused libc.py code
* Make models top level importable
* Add State level model invocation function
So user is not required to pass in state at to a platform level func
* Explicitly mark what is in the public API
Protects against accidentally making something a public API just because
it has a docstring
* clean
* Move models.py to top level
* Rm models
* Fix docstring typo
* Add default param name, move comment
* Update docstring
* Script for generating syscall tables from Linux src (pulled from kernel.org)
* Add generated syscall table
* Update syscall names to match extracted entries
* Move to new syscall dispatcher
* Add machine def to x86 cpus
* Wrap ABI semantics in its own class hierarchy
* Define a model invocation for syscalls and function calls
* Add unit tests for ABI
* Add a common base class for Platform models
* Refactored will_execute_pc hooks
* Fixed typos
* Figured out why the simple_parse test was failing
* Figured out why the simple_parse test was failing
* Figured out why the simple_parse test was failing
* Figured out why the simple_parse test was failing
Cleanup
* Cleanup
* removed TODO from executor.py
* refactored line in forking handling in executor.py
* removed extraneous space in manticore.py
* removed --exe flag from nosetests command