* 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
* plugin rearrangement and UI options
* Live update and clear options
* coverage stats
* added check for xref address
* coverage in separate option as BackgroundTaskThread
* license cleanup
* basic caching (wip)
* moved execute in binja and cleanup of self.instruction refs
* did_emulate_insn and get_current_llil_func renaming
* refactor for hasattr
* Bump version number
* Changelog updates
* Include changes to undocumented functionality, but mark as experimental
* Function notation
* Update CHANGELOG.md
* thanks!!!
* adding abstract disasm class
* before adding abstract insn
* explicit capstone use
* (wip) removing capstone
* debugging nose
* removed disassembler from constructor
* nits
* capstone->cs and nits
* basic memory (wip)
* tmp
* added binja dissasm
* fixed execution pipeline - calling LLIL instructions
* updated parseargs to select disassembler
* unstable (disassembler at CPU constructor breaks tests)
* disasm fix for tests
* nit for aliases in x86
* added a flag to differentiate disassembly and IL-disassembly for binja
* before merging
* merging with dev-events master
* fixed signal forwarding for binja
* cleaner initialization
* Binja RegisterFile. Dropped Platform
* address fixup
* properly incrementing PC
* some work on XOR, SET_REG, REG, CONST, AND, PUSH, POP
* adding first CALL, JMP, LOAD (wip)
* JUMP fix
* GOTO and misc fixes in PC handling
* adding instructions (wip)
* fixing flags and sizes (wip)
* loading database if exists for faster analysis
* fix for register debug
* fixes for register sizes and flags
* FIX for multiple IL instructions sharing the same PC
* removed CONST_PTR and misc fixes
* RET, SHR, shift left & misc instructions, fixing insn sizes (wip)
* flag fixes
* ctypes 2's complement parsing
* JUMP_TO, SYSCALL
* syscall fixups and flag computation using binja il only
* FLAG, NEG, CMP(family) of LLIL, some unimplemented methods
* MUL, DIV
* cmpxchg
* MUL, IMUL, ROR, ROL
* fallback to capstone for all LLIL_UNIMPL and LLIL_UNIMPL_MEM
* fixes for registers and memory when switching CPUs
* check for binja to disable multiprocessing
* merging
* nit
* hack for serialization
* moved check for disassembler to Manticore from __main__
* removing __class__ refs
* cleanup from __class__.disasm
* size calculation from get_instruction_low_level_il
* fix for NEG, check for empty queue, execute refactor
* fixes for LLIL functions
* removal of redundant regfile writes
* nit fixes
* function overrides in Cpu classes and orphan printf cleanup
* nit
* incomplete merge
* verbosity temp mod
* cleanups of FIXMEs
* 2-stage constructor for disassembler
* cleanup binja refs in abstractcpu
* serialization for platform_cpu
* check for UNIMPL in all the il queue
* typo fix
* fix for arm
* typo correction and starting caching implementation
* restored register printing and fixed import in x86.py
* orn instruction plus unit test
* uadd8 and it instructions implemented
* SEL instruction implementation
* GE flag set by UADD8
* IT instruction condition code properly no longer prevents its execution
* support for multiple instruction tests added to testing setup
* unit test for SEL instruction
* cleaned up the tests for thumb instructions
* implemented sxth and rev instructions
* implemented tests for sxth and rev instructions
* updated the add implementation to support two operand variant (i.e., add r4, #4)
* added test for itete ne instruction
* Use correct event name
* Add test for state.generate_testcase
Test merely tests that this function publishes the 'will_generate_testcase' event
* Properly test; make sure the callback executes and error if not
This is the most convoluted unit test I've ever written.
* "better"
* Make sure we're using the same workspace
* create_store -> fromdescriptor
* classmethod -> cls variable
* Cache descriptor name
* join -> format
* Update Store docs
* ran
* Some dirty work
* Rm unnecessary sanitization
* Fix state.generate_inputs event publishing
We don't need to manually pass `self` because State is automatically
forwarded as an argument. Also correctly specify a message for the state
and expose to the API
* Rename
* Update test for new save_testcase args, make test more robust
* Simplify arguments related to generate_testcase_callback by removing default arg. Add test for this behavior
* Minor test fixup
* Add official API docs
* Remove unnecessary new event type
* Add fork_state event for individual state forks
* Rename to forking_state, add branch tracking to state
* Remove unnecessary locking around event publishing
* 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
* State __init__ needs to initialize platform constraints
* Internal methods use internal properties
* test_record_branches removed
* Add taint args to buffer creation
Allows the `new_symbolic_buffer` and `symbolicate_buffer` functions to take keyword args for tainting. Defaults to frozenset in both cases.
* Add unit tests and ArrayProxy taint propery
Adds simple unit tests for tainted buffers. Added a property to the ArrayProxy class in smtlib.expression so that it's possible to access the taint of the proxied ArrayVariable.
* Updated docstrings
* WIP New Policy class
* WIP pubsub
* Update Signal tests
* small fixes from github comments
* Fix event decode_instruction signature
* Good merge
* Good good merge
* Eventful class commented
* The million typos
* Code revision
* Fix tests for new mor strict Eventful
* Fix naming
* Separate storage from workspace
* Begin removing output generation from manticore.py
* Split up workspace and output
* Create a separation between output and workspace
* Get it to a working (hacky) state
* Start bringing state serialization into workspace
* More mcore->workspace moves
* Remove unused imports
* Update serializers; add interface
* move state saving to workspace
* can now save/load states and testcases
* Add redis as backend
* Implement streams in terms of values and vice versa
* Implement `ls` and move workspace loading to Workspace
* Better workspace initialization
* Fix how --workspace is parsed for tests
* update tests to new workspace indexes
* Fix state storage and handling
* Doc updates and extra error checking
* pep8 style changes
* Add Executor's 'sync'
* Remove previous workspace artifacts from Executor
* Comment out constraints check assert
* Centralize locking to new testcase ids
* Fix testcase generation
* pep8 updates
* propagate descriptor instead of path
* Add an in-memory state store
* Make memory maps be sortable
* Allow to produce an empty state
* Add workspace tests
* Make Memory.__cmp__() more robust