8a588c7 | Mark Mossberg | 22 December 2017, 23:30:16 UTC | Manticore 0.1.6 (#662) * Update CHANGELOG.md * Add external contributors * add categories * Update CHANGELOG.md * initial rough notes from commit log * Update CHANGELOG.md * Update CHANGELOG.md * Bump version numbers * Update CHANGELOG.md * readme 2.0 * update tagline | 22 December 2017, 23:30:16 UTC |
a7fb995 | Mark Mossberg | 22 December 2017, 23:27:40 UTC | Update __main__.py (#669) | 22 December 2017, 23:27:40 UTC |
6499c0e | Mark Mossberg | 22 December 2017, 23:11:14 UTC | Add --tx flag to control symbolic tx (#667) * Add --tx argument that must be a positive int * Add simple tx_count mode * Help updates * Add None default arg * Implement as upper bound, rather than absolute tx num * rename to positive | 22 December 2017, 23:11:14 UTC |
2e578ac | Yan Ivnitskiy | 22 December 2017, 21:24:56 UTC | Fix Unicorn exception handling; add a symbolic wrapper for exit(2) (#616) * Fix unicorn tests and exception handling; add a sym wrapper for sys_exit * Add debug output when solving for exit() arg * Update how sys_exit(expr) is handled | 22 December 2017, 21:24:56 UTC |
8413f7e | Mark Mossberg | 22 December 2017, 21:24:21 UTC | Rm unused evm workspace function (#666) * Rm unused function Since this func was added, _generate_testcase_callback was overrided in ManticoreEVM totally bypassing this function, which is now unused * add comment | 22 December 2017, 21:24:21 UTC |
7875aaf | Mark Mossberg | 22 December 2017, 19:05:37 UTC | Rename manticore.seth to manticore.ethereum (#665) * Rename file * Fixup refs * update logging * Update docs * Update docstr * Clean docs | 22 December 2017, 19:05:37 UTC |
c200aee | Mark Mossberg | 22 December 2017, 18:14:09 UTC | output the actual exit status when finalizing evm states (#664) * Instead of 'Still Running' use the actual state exit status * Throw states are terminated now * More accurate phrasing, since 'throw' and 'not enough funds' are here too | 22 December 2017, 18:14:09 UTC |
7aa85f1 | Mark Mossberg | 22 December 2017, 17:23:17 UTC | Clean examples/evm (#661) * 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 | 22 December 2017, 17:23:17 UTC |
6896c22 | Yan Ivnitskiy | 21 December 2017, 22:02:44 UTC | Initial implementation of concolic algorithm (#653) * 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 | 21 December 2017, 22:02:44 UTC |
b8ea522 | Yan Ivnitskiy | 21 December 2017, 19:18:09 UTC | 0.1.6-related cleanups (#659) * rename .runtime_bytecode to .bytecode * init_bytecode -> init.bytecode * clearer language * Consistent returns, arguments; added address property * docstring cleanup * Fix spelling; remove extra result capture | 21 December 2017, 19:18:09 UTC |
6b794fe | Mark Mossberg | 21 December 2017, 17:54:24 UTC | eth int overflow: tests, mul support (#656) * Move algorithm into ManticoreEVM * Rm buggy unused line * Initial eth testing setup * Check for overflow in mul also * clarifying comment * Install solc for travis * Add sudo * x * Rm travis_retry, since we rarely actually use it, and it's not available in this script for some reason * Check for specific findings * Fix test * Clean up transaction firing logic * Use less strict check, better for floating point | 21 December 2017, 17:54:24 UTC |
aac83ad | Mark Mossberg | 20 December 2017, 18:55:17 UTC | Add error handling to solc wrapper (#651) | 20 December 2017, 18:55:17 UTC |
cc8ee56 | Mark Mossberg | 20 December 2017, 18:54:56 UTC | Improve evm cli output (#652) * Replace starting text * Use warning logger for detector warnings! * Uniformity bt linux and evm * clean up suppress hack * Prettify output * minor | 20 December 2017, 18:54:56 UTC |
95967f8 | Feist Josselin | 19 December 2017, 17:47:10 UTC | Seth: Fix uninitialized address in _generate_testcase_callback (#650) | 19 December 2017, 17:47:10 UTC |
591d7b8 | Yan Ivnitskiy | 18 December 2017, 21:06:44 UTC | EVM logging cleanup (#647) * 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 | 18 December 2017, 21:06:44 UTC |
6dd50da | Mark Mossberg | 18 December 2017, 17:00:01 UTC | 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 | 18 December 2017, 17:00:01 UTC |
833ef4a | ggrieco-tob | 15 December 2017, 21:57:02 UTC | fix for #608 using a local definition (#644) | 15 December 2017, 21:57:02 UTC |
670076c | cole-lightfighter | 15 December 2017, 21:53:54 UTC | Fix compilation bug (#645) | 15 December 2017, 21:53:54 UTC |
9839cbd | feliam | 15 December 2017, 19:45:30 UTC | 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 | 15 December 2017, 19:45:30 UTC |
aabfecf | Srinivas P G | 15 December 2017, 17:13:00 UTC | Fix for issue #642 (#643) * version argument in manticore * Fix 591 - Exception Handler * Issue 597 - Remove the unused policy argument * fix issue 642 | 15 December 2017, 17:13:00 UTC |
db80685 | feliam | 15 December 2017, 05:17:41 UTC | 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 | 15 December 2017, 05:17:41 UTC |
4b79711 | feliam | 12 December 2017, 17:56:39 UTC | 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 | 12 December 2017, 17:56:39 UTC |
df9af1f | Mark Mossberg | 11 December 2017, 21:14:06 UTC | 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 | 11 December 2017, 21:14:06 UTC |
7ea3019 | Mark Mossberg | 11 December 2017, 16:36:30 UTC | evm: Make 'not enough funds' states finalized states (#636) * print on every * terminate not enough fund states * Better check * revert debug change | 11 December 2017, 16:36:30 UTC |
3f04411 | Mark Mossberg | 08 December 2017, 16:15:03 UTC | 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 | 08 December 2017, 16:15:03 UTC |
ed29a22 | feliam | 07 December 2017, 23:19:16 UTC | 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 | 07 December 2017, 23:19:16 UTC |
764151d | Daniel Bolognino | 06 December 2017, 23:51:20 UTC | 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 | 06 December 2017, 23:51:20 UTC |
c6902d7 | Arun John Kuruvilla | 05 December 2017, 15:41:38 UTC | 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 | 05 December 2017, 15:41:38 UTC |
e63838d | Arun John Kuruvilla | 04 December 2017, 22:53:19 UTC | Fixed Issue #619 (#623) Add newlines in .trace file generation | 04 December 2017, 22:53:19 UTC |
be0141e | Yan Ivnitskiy | 01 December 2017, 21:14:56 UTC | Amend pr guidelines (#615) | 01 December 2017, 21:14:56 UTC |
77b0542 | Arun John Kuruvilla | 30 November 2017, 15:16:08 UTC | Fixed Issue #533 (#606) * Remove Platform._path | 30 November 2017, 15:16:08 UTC |
9c777e6 | feliam | 29 November 2017, 22:00:49 UTC | 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 | 29 November 2017, 22:00:49 UTC |
3a63402 | feliam | 29 November 2017, 16:22:16 UTC | 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 | 29 November 2017, 16:22:16 UTC |
e50cc6b | awr|arr | 29 November 2017, 00:18:12 UTC | 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 | 29 November 2017, 00:18:12 UTC |
481e419 | Yan Ivnitskiy | 28 November 2017, 23:36:33 UTC | 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 | 28 November 2017, 23:36:33 UTC |
3c7d92b | Yan Ivnitskiy | 28 November 2017, 23:14:03 UTC | 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 | 28 November 2017, 23:14:03 UTC |
88b213d | Garret Reece | 28 November 2017, 22:46:19 UTC | Fixes to thumb mode instruction implementations * Thumb specific fixes to the SUB, BX, and MOV instruction implementations * implemented hardcoded result for gettid syscall | 28 November 2017, 22:46:19 UTC |
d98ef22 | Srinivas P G | 27 November 2017, 23:13:13 UTC | 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 | 27 November 2017, 23:13:13 UTC |
ce88876 | Srinivas P G | 22 November 2017, 21:18:45 UTC | Fix for issue 556 and 591 (#590) * version argument in manticore * Fix 591 - Exception Handler | 22 November 2017, 21:18:45 UTC |
fccf451 | cole-lightfighter | 21 November 2017, 18:56:00 UTC | 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 | 21 November 2017, 18:56:00 UTC |
fbe70f1 | Sidhant Gupta | 20 November 2017, 22:44:19 UTC | Updating README with solc binary requirements (#575) * Updating README with solc binary requirements * Update README.md | 20 November 2017, 22:44:19 UTC |
5c52fca | Sidhant Gupta | 20 November 2017, 21:06:57 UTC | Updates travis cache to python 2.7.13 (#576) | 20 November 2017, 21:06:57 UTC |
652c99b | Dushyanth Chowdary | 20 November 2017, 21:04:34 UTC | 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 | 20 November 2017, 21:04:34 UTC |
1dbf40e | Mark Mossberg | 20 November 2017, 20:35:32 UTC | Add UMD simple assert example (#573) | 20 November 2017, 20:35:32 UTC |
35d8fce | Mark Mossberg | 17 November 2017, 17:40:30 UTC | Only really fork when there's multiple solutions (#569) | 17 November 2017, 17:40:30 UTC |
0e4e9a4 | ggrieco-tob | 14 November 2017, 20:18:31 UTC | Added missing syscalls in decree syscall trace (#545) * added missing syscalls in decree syscall trace * added missing parameter in callback of BranchLimited policy | 14 November 2017, 20:18:31 UTC |
352b9ba | awr|arr | 14 November 2017, 20:10:14 UTC | Fix typo per issue #552 - s/arm64/amd64/ (#561) | 14 November 2017, 20:10:14 UTC |
8002a1d | HighW4y2H3ll | 14 November 2017, 19:39:51 UTC | Add PCMPXSTRX Instructions (#507) * Add PCMPXSTRX Instructions * bug fixes * unittest related fixes * Full test of pcmpxstrx * Move tests | 14 November 2017, 19:39:51 UTC |
94d2e94 | feliam | 14 November 2017, 15:06:08 UTC | 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 | 14 November 2017, 15:06:08 UTC |
b13a8c0 | cole-lightfighter | 14 November 2017, 13:34:18 UTC | Fix SLOAD invalid memory access (#562) Check global_storage includes an entry at address before trying to load storage. | 14 November 2017, 13:34:18 UTC |
d9b5467 | Mark Mossberg | 13 November 2017, 23:30:23 UTC | Handle file.tell() error, which will happen for special files (/dev/tty) (#559) | 13 November 2017, 23:30:23 UTC |
08f86cc | cole-lightfighter | 13 November 2017, 17:20:57 UTC | [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 | 13 November 2017, 17:20:57 UTC |
9535ec8 | Mark Mossberg | 09 November 2017, 16:28:24 UTC | Fix all integral type checks that forget long (#555) | 09 November 2017, 16:28:24 UTC |
d341bc9 | Peter Goodman | 08 November 2017, 19:48:23 UTC | 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 | 08 November 2017, 19:48:23 UTC |
7c1e5e1 | Yan | 06 November 2017, 23:00:26 UTC | Localize log formatting changes (#547) * Don't add custom format string to root logger * Fix handler propagation | 06 November 2017, 23:00:26 UTC |
82d1621 | car bauer | 06 November 2017, 21:51:43 UTC | Remove win32 support (#535) * Remove Windows support files * Remove Windows test files | 06 November 2017, 21:51:43 UTC |
baf2d76 | Yan | 25 October 2017, 14:53:11 UTC | 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 | 25 October 2017, 14:53:11 UTC |
08e8c3b | feliam | 23 October 2017, 20:45:01 UTC | Fix coverage calculation vs. metadata (#529) * Fixes symbolic reentrancy example * Fix coverage Issue# 527 * Remove debug unused code | 23 October 2017, 20:45:01 UTC |
a9ad183 | feliam | 20 October 2017, 19:43:22 UTC | Fixes symbolic reentrancy example (#528) | 20 October 2017, 19:43:22 UTC |
5aa681d | Mark Mossberg | 19 October 2017, 19:46:22 UTC | 0.1.5 Release (#501) * Update CHANGELOG.md * Update 0.1.5 README * Bump version/release date | 19 October 2017, 19:46:22 UTC |
23218d7 | feliam | 18 October 2017, 22:17:26 UTC | Simple event signature fixes (#525) * dev-evm-event-bugfixes * Better stringifierer | 18 October 2017, 22:17:26 UTC |
8591bff | feliam | 17 October 2017, 22:47:20 UTC | EVM support (#521) * 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 | 17 October 2017, 22:47:20 UTC |
e84c051 | feliam | 04 October 2017, 18:51:37 UTC | Manticore plugins (#506) * 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 * Dev plugins (#512) * 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 * Define prefixes in one place * remove debug print * remove debug print | 04 October 2017, 18:51:37 UTC |
1edee15 | Yan | 25 September 2017, 22:09:18 UTC | Pythonic logger naming (#511) * More generic logging * Clean up logger name gen * Refactor name summarization | 25 September 2017, 22:09:18 UTC |
b933383 | JP Smith | 14 September 2017, 16:52:15 UTC | install z3 with pip in Dockerfile (#502) | 14 September 2017, 16:52:15 UTC |
0efa379 | JP Smith | 14 September 2017, 00:17:13 UTC | Fix stderr file creation and test for it going forwards (#495) * fix stderr file creation and test for it going forwards * consolidate tests * clean up imports | 14 September 2017, 00:17:13 UTC |
58cdee8 | Mark Mossberg | 13 September 2017, 22:34:45 UTC | Update test_workspace.py (#497) | 13 September 2017, 22:34:45 UTC |
23c2585 | feliam | 13 September 2017, 21:37:42 UTC | Refactor platform details out from Manticore (#421) * 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 * Refactor CLI, and Manticore high level interfaces (#498) * Refactor main, - classmethod for linux - refactor manticore ctor - compat with old linux behavior - changed verbosity API (to allow for this use case: what if you want to set verbosity for the stuff manticore does in its ctor?) * rm old verbosity * small * Add decree classmethod * Rm checks ; they are redundant anyway * Misc * Move add_symbolic_file to linux platform * rm redundant checks * Rm explicit args for deprecated interface * Fix cli bug * Allow for both linux and decree from cli * Add back argv positional param for deprecated api compat | 13 September 2017, 21:37:42 UTC |
f6fea10 | Mark Mossberg | 12 September 2017, 19:21:48 UTC | Use z3-solver package (#494) * Add z3-solver pip dep for z3 install * Update readme for z3 | 12 September 2017, 19:21:48 UTC |
5092397 | Mark Mossberg | 12 September 2017, 19:08:53 UTC | Fix logger verbosity and test (#491) * something liekt his * `will_store_state` does not exist * slightly better cli verbosity test * Fix variable * Rm unused callback fun | 12 September 2017, 19:08:53 UTC |
a8ef3ec | John F.X. Galea | 12 September 2017, 19:03:01 UTC | Added implementation for sys_dup and sys_dup2 (#490) * Added implementation for sys_dup and sys_dup2 * Fixed bug in close functionality. * Removed unwanted white-space * Updated implementation of sys_dup and sys_dup2 * Fixed is_open function. * Handle a newfd in dup2 that extends beyond existing fd table size * Add a minimal sys_getrlimit() implementation Thank you @johnfxgalea! | 12 September 2017, 19:03:01 UTC |
f8a8373 | Mark Mossberg | 11 September 2017, 17:05:51 UTC | Request binaries that cause bugs in contributing.md (#486) * Request binaries * Update CONTRIBUTING.md | 11 September 2017, 17:05:51 UTC |
8b66e58 | Mark Mossberg | 08 September 2017, 00:15:31 UTC | Document cli better (#482) * Update README.md * Rewrite -h * Clearer cli usage * Fix forgotten variable name changes * Fix more forgotten variables | 08 September 2017, 00:15:31 UTC |
60c6813 | John F.X. Galea | 07 September 2017, 20:30:55 UTC | Implemented getcwd sys call, along with a new helper function that wr… (#483) * Implemented getcwd sys call, along with a new helper function that writes a NULL terminated string to memory. The reason for this commit is that the sys call was not implemented. * Fixed logging string for sys_getcwd imp * Removed semicolon in sys_getcwd function * Fixed logging string for sys_getcwd imp. The problem was that size is unsigned and the incorrect format symbol was used * Fixed the following: 1) Included the string param in the doc of the write_string function. 2) Added less verbose code to append a NULL to a string in the write_string function 3) Removed the assert to check if the written string to memory matches with one that is read at a given address in the sys_getcwd function 4) Fixed bug in the return values returned by sys_getcwd * Fixed error logs in the getcwd function. * Fixed return values of sys_getcwd function. * Fixed string format symbol in sys_getcwd function. * Removed dir exists check from the sys_getcwd function. * Arranged memory block check in the sys_getcwd function. * Removed new line after write_string function. (Thank you @johnfxgalea!) | 07 September 2017, 20:30:55 UTC |
d83fa73 | Mark Mossberg | 06 September 2017, 22:11:22 UTC | Create CONTRIBUTING.md (#481) * Create CONTRIBUTING.md * Update CONTRIBUTING.md * Update CONTRIBUTING.md | 06 September 2017, 22:11:22 UTC |
7679773 | Yan | 01 September 2017, 21:05:43 UTC | Update examples (#477) * 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 | 01 September 2017, 21:05:43 UTC |
9b8ef3c | Yan | 01 September 2017, 20:31:50 UTC | Concretize stdout in state summary (#478) | 01 September 2017, 20:31:50 UTC |
0cd2560 | JP Smith | 01 September 2017, 16:43:29 UTC | Update Manticore docstring (#476) * update Manticore docstring * fix type docstring | 01 September 2017, 16:43:29 UTC |
d5d22a8 | JP Smith | 31 August 2017, 21:44:43 UTC | Allow Manticore initialization with State object (#475) | 31 August 2017, 21:44:43 UTC |
f9b02bd | feliam | 31 August 2017, 16:48:55 UTC | New Policy class (#368) * New Policy class * Move visited to Policy - Fix contexts * Add BranchLimited * signals -> events for branchlimited | 31 August 2017, 16:48:55 UTC |
c6f8fd1 | JP Smith | 31 August 2017, 15:16:52 UTC | initialize executor at manticore initialization (#471) | 31 August 2017, 15:16:52 UTC |
ca0d7b6 | Yan | 29 August 2017, 21:00:17 UTC | Add basic socket support (#428) * 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 | 29 August 2017, 21:00:17 UTC |
a025bda | Theofilos Petsios | 23 August 2017, 21:47:23 UTC | Updated visualization plugin with coverage info & live update option (#444) * 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 | 23 August 2017, 21:47:23 UTC |
60a99d2 | JP Smith | 23 August 2017, 21:37:26 UTC | Seed random on policy init to make results deterministic (#466) * seed random on policy init to make results deterministic * document new random behavior | 23 August 2017, 21:37:26 UTC |
1b653be | Theofilos Petsios | 23 August 2017, 18:46:17 UTC | Basic Caching for Binja IL (#467) * 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 | 23 August 2017, 18:46:17 UTC |
b32379d | Theofilos Petsios | 22 August 2017, 03:03:47 UTC | did_execute_instruction nit (#468) | 22 August 2017, 03:03:47 UTC |
d3d1e9c | Mark Mossberg | 18 August 2017, 17:48:33 UTC | Manticore 0.1.4 (#462) * Bump version number * Changelog updates * Include changes to undocumented functionality, but mark as experimental * Function notation * Update CHANGELOG.md * thanks!!! | 18 August 2017, 17:48:33 UTC |
604de56 | Mark Mossberg | 18 August 2017, 15:12:14 UTC | Update readme (#461) * No more partial arm * windows unmaintained :(( and bye pip * Move dev install insns to wiki, no need to clutter README | 18 August 2017, 15:12:14 UTC |
715cc43 | Theofilos Petsios | 17 August 2017, 21:43:27 UTC | Abstract Disassembler classes and Binja CPU + Platform (#364) * 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 | 17 August 2017, 21:43:27 UTC |
f9489d3 | Mark Mossberg | 17 August 2017, 20:50:21 UTC | Document `Manticore.locked_context` API (#460) * Add locked_context to documented APIs * Initial | 17 August 2017, 20:50:21 UTC |
22974ca | Mark Mossberg | 17 August 2017, 20:48:59 UTC | Add gotchas docs (#459) * Add gotchas docs * always | 17 August 2017, 20:48:59 UTC |
5d87fc8 | Garret Reece | 17 August 2017, 15:02:44 UTC | Instructions and tests to support issue binary for issue #182 (#403) * 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 | 17 August 2017, 15:02:44 UTC |
7bb64fe | JP Smith | 15 August 2017, 15:50:46 UTC | fix trace-saving behavior (#454) | 15 August 2017, 15:50:46 UTC |
09bb702 | Theofilos Petsios | 14 August 2017, 20:05:29 UTC | Implement logging presets (#445) * logging template nits * moved logging outside Manticore * naming fix and exposed API call * logging -> log renaming * fix for verbosity test * restored setter/getter for verbosity * fixes for warnings in 0 mode and exteneed test_cli_verbosity * removed print * relative import, fork message to executor, init function * verbosity docstring fix * docstring nit | 14 August 2017, 20:05:29 UTC |
1d8e051 | Mark Mossberg | 14 August 2017, 18:44:53 UTC | Fix state.generate_testcase (#451) * 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" | 14 August 2017, 18:44:53 UTC |
36a5881 | Yan | 10 August 2017, 19:07:53 UTC | Use the same workspace URI in Executor.__init__ (#443) * Make sure we're using the same workspace * create_store -> fromdescriptor * classmethod -> cls variable * Cache descriptor name * join -> format * Update Store docs | 10 August 2017, 19:07:53 UTC |
e78ae89 | Mark Mossberg | 10 August 2017, 19:06:51 UTC | Add Manticore version to issue template (#447) * Add Manticore version to issue template * Update ISSUE_TEMPLATE.md | 10 August 2017, 19:06:51 UTC |
eef3cd2 | Mark Mossberg | 08 August 2017, 22:12:55 UTC | Implement state.generate_testcase (#438) * 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 | 08 August 2017, 22:12:55 UTC |
9ae76a4 | Mark Mossberg | 07 August 2017, 15:08:37 UTC | Fix testcase generation output (#436) | 07 August 2017, 15:08:37 UTC |
68555f5 | Dushyanth Chowdary | 05 August 2017, 01:27:15 UTC | Fixing raise issue #435 (#437) | 05 August 2017, 01:27:15 UTC |