https://github.com/trailofbits/manticore

sort by:
Revision Author Date Message Commit Date
9be0e06 Proper test classes names 21 March 2018, 19:00:00 UTC
4c870c0 Small refactor of armv7rf 21 March 2018, 18:17:51 UTC
f6f4c78 Fix duplicate armv7rf test name 21 March 2018, 18:17:39 UTC
d1051f6 Push 0 on internal revert (#830) 20 March 2018, 17:30:09 UTC
2eb0025 evm: add per state trace file (#817) * Add trace file * Make ethersplay compatible trace format * Small cleanup * Record separate init and rt traces, emit separate trace files * add todo * More pythonic * Add test for end insn in trace file * Fix test * Move trace accumulation into will_evm_execute callback here, we can easily and correctly check the .last_exception field to see if we were in init code or rt code. from the did_evm_execute hook the last instruction (end instruction) had a different .last_exception so this was causing the last instruction to not be recorded in the trace. 19 March 2018, 18:22:08 UTC
8acd229 Added --txaccount parameter to control the caller of the symbolic exploration of smart contracts (#819) * added --txaccount parameter to control the caller of the symbolic exploration of smart contracts * Use of the new EthereumError exception 19 March 2018, 18:08:22 UTC
e97e631 port ethereum tests to individual files (issue #809) (#820) * Add contract keyword arg to IntegrationTest._simple_cli_run * Remove inline tests from test_eth * Refactor IntegrationTest.test_eth_regressions to support multi-contract files 19 March 2018, 13:24:04 UTC
fb79127 Graceful exit when no states to run (#815) * rm unnecessary return, change assert to graceful handle * Add regression test * Add regression test * Correct logic * Rm unnecessary check This branch is unnecessary, if this condition is true, then ultimately the executor will do nothing, and we'll simply return anyway. * Raise NoAliveStates if no alive states to execute * docstr update * Update mult_tx_analysis to handle NoAliveStates * Fancy * Update test * Codeclimate fmt * fmt * better readability * add docstr 16 March 2018, 21:48:36 UTC
a21c8b6 Improve evm docs (#816) * Add docstr for finalize * prune unnecessary stuff from docs * Add trace file * Revert "Add trace file" 4687810e15c2bc6cc3e729c32bdad2f617679d77 16 March 2018, 17:32:32 UTC
eaa0e52 Fix off by 1 error in codecopy (#812) * Fix off by 1 in codecopy * Add regression test * Improve formatting 15 March 2018, 20:41:29 UTC
fb3938b Raises exception for contract with a function without code. Issue #789 (#797) 15 March 2018, 20:31:18 UTC
cf789a4 Introduce concretized_args decorator (#803) * Introduce concretized_args decorator * Add docs * Cleanup * Add basic expression counter * Please codeclimate * pep8 * update docstring * Use default concretization policy when not provided * Add concretizer tests 14 March 2018, 20:45:12 UTC
61babdb Fix evm RETURN implementation (#808) * Fix write_buffer issue (#807) * Add test for write_buffer fix * Use Operators.ORD instead of ord (even though were assuming concrete vals) * Cleanup 12 March 2018, 19:27:18 UTC
bb4a796 Add codeclimate, tox, and pycodestyle configs (#772) * pep8 autopep8 -r -i -a -a manticore * tox for testing py3k * minimal codeclimate * Add correct Code Climate ID * unignore max line endings since it's set to 160 * more badges * turn off pep8 in code climate * need to remove for codeclimate to work right * re-enable most checks with looser thresholds * remove unused imports autoflake --in-place -r manticore * revert the autoflakes changes * set tox to only py27 for now * cache is hardcoded to python 2.7.13 * Comment cleanup * Try autoflake again * Add dev environment dependency management to tox.ini * Remove count/statistics options from tox.ini Per Dan, these crash pep8 analysis on codeclimate at present * Revert setstate initialization * Re-introduce explicit compare for flags * add back structural comment * rm unneeeded ` as e` * bump py tox 12 March 2018, 18:40:06 UTC
fceb48c Update Create (evm exception) arguments (#805) * Update Create arguments * Add integration test * Dial back the procs 12 March 2018, 16:19:38 UTC
fbf0823 Very quick fix to avoid STOP instructions to return random values (#792) 07 March 2018, 17:57:59 UTC
f4118f4 Added a function to generate evm testcases without using callbacks (#791) * Added a function to generate evm testcases without using callbacks Possible fix for #782 * The 'message' parameter in generate_testcase should be optional Requested by @montyly 06 March 2018, 21:35:19 UTC
fe2538f Add docstring for ARM's operand.is_shifted (#788) So that people don't have to google that by themselves! lolo 05 March 2018, 23:42:48 UTC
328b623 Change assertion->exception and add msg when target file is not present (#778) 02 March 2018, 20:55:13 UTC
7349a0b Fix out-of-bound index in EVMWorld._process_pending_transaction (#786) 02 March 2018, 20:52:56 UTC
03ecb3f Fix cli --data parameter (#781) * Actually use args.data * Update decree 01 March 2018, 23:48:10 UTC
17e9098 Used a namedtuple for pending transaction. Issue #689 (#775) * Used a namedtuple for pending transaction. Issue #689 * Changed field names in namedtuple. Issue #689 01 March 2018, 23:27:52 UTC
9b75a1f Unicorn emulator: get uc_arch & uc_mode values just once (#779) 01 March 2018, 23:24:27 UTC
20cb97f Fix Cpu.execute's improper reporting of `Unimplemented instruction` (#777) When particular instruction's implementation raised an `AttributeError` it was catched by `Cpu.execute` and we just saw "oh this instruction is not implemented" while it was, but its implementation was broken. 01 March 2018, 18:40:51 UTC
48f88be Dev fix solver getvalue (#739) * Increment default gas * Do not solve concrete values * Do not solve concrete values * Do not solve concrete values * Remove comment * Make solver get_value return concrete values untouched - wip * Handle solver.get_value integers * fix reporting * Make solver.get_value return the expression untouched when concrete * Remove hack; we know `c` can't be an int type * Revert "Remove hack; we know `c` can't be an int type" 0849094525d7e4cea0295d4be13552dea9c8ad72 * Fix cli --data argument Previously, it was being ignored :/ * Fix linux output generation solve.get_value returns back an int, if it concretized the sym var * Revert "Fix cli --data argument" 2ee740acb20a9d393e1a7984d7ec0e0fe64dbfaf 28 February 2018, 23:11:54 UTC
39370cc Let the Python interpreter be specified externally (#774) 27 February 2018, 17:33:25 UTC
461da57 Array value configurable. 8,16,32..256 bits (not prefixed to 8) (#732) * Array value configurable. 8,16,32..256 bits (not prefixed to 8) * Test Array256->256 * Remove old 8 bit assumptions * Add arrayProxy copy constructors and remove old 8 bit assumptions * remove old 8 bit assumptions * remove old 8 bit assumptions * Better ArrayProxy special case handling * Fix tests * Review fixes * review fix * fix gas variable * Review fixes * Fix vm.gas access 27 February 2018, 00:09:34 UTC
a3ee31e Manticore 0.1.7 Release (#764) 23 February 2018, 23:31:31 UTC
394401e Fix ARMv7's ADD (#769) * Fix armv7's ADD 23 February 2018, 23:07:49 UTC
b9aa483 evm: Fix MUL overflow false positive (#767) * initial * Add test for mul checker * clean * Rename and clean * Rm testing * Better comment, and clean * Split tests, add more tests * Clean up stuff, remove unnecessary masking * fmt * Add back constrain to make it match the originall buggy situation * Clean up surrounding code, make it unit testable * Correct name * Use individual arguments for helpers 23 February 2018, 20:42:15 UTC
3f1c51f Improve solc error output (#765) * Improve err handling when there's a solc error, print the error * Fix bug, don't merge stdout/err * Simplify * Add more space 23 February 2018, 16:13:55 UTC
d0f69c7 Add ethereum regression tests (#763) * Clean some unused variables * Add basic infrastructure * Add real eth regression tests * Use check_call * Suppress stdout * Make 705 work * Less error prone way of testing 22 February 2018, 21:04:01 UTC
8e47a6e Drive-by typo correction ;-) (#762) 22 February 2018, 13:17:49 UTC
ebe0baa Emit events for exception raising evm instructions (#722) * Create EVMInstructionException, properly emit did_evm_execute_instruction for insns that trap to the platform * Emit event before execution of platform handlers. This is because many of the platform handles actually destroy the cpu (platform.current) via pop_vm. Clients that receive the event may want to access the cpu though, for example to see the current PC. so we emit the event right before, so they can do this * simplify * move closure below result decl * Add comment to explain * Fix typo * Revert back to pythonic style It was this way to test emitting the did execute signal here, rather than in the evm cpu * Remove inline function definition from critical path * Add test for events for exception instructions 20 February 2018, 20:10:29 UTC
9f0d25c Fix evm state handling regression (#741) * Revert breaking change * Add assertion to verify states being queued 20 February 2018, 12:57:07 UTC
105a7d3 Speedup x86 execution by caching AMD64RegFile.all_registers (#755) * Cache `all_registers` for AMD64RegFile 20 February 2018, 01:48:26 UTC
680fc8f Armv7 code refactor (#749) * Armv7 code refactor Removes dead imports, makes code style more consistent and a bit more compliant with pep8 (yeah i seems we don't enforce any particular style, but this seems to be a reasonable default for me). * Review fix: add comment for armv7 _shift 17 February 2018, 16:51:58 UTC
c6f457d Updates for thumb mode (#610) * WIP. issues with setting PC correctly via POP are corrected. issues with pc relative addressing in thumb mode corrected. Still a memory access error, but getting there * WIP - PC relative addressing in thumb mode now aligns the value for PC per the spec before applying offset * General thumb mode fixes: * ldr pc, <operand> now swaps modes and sets pc correctly * the bl instruction sets the lr appropriately for the current mode * the two operand forms of the ORR, EOR, and BIC instructions now exist * tests added for these updates * comment cleanup * WIP :more thumb mode instructions, a special case for the sys_brk handled, and a really ugly solution to an internal plumbing problem * First attempt at concretizing ARM mode * Handle symbolic mode for ARMv7 * Clean up imports * Make comment more accurate and use instruction.size * Collapse _Shift and _Shift_thumb * Make ARM mode handling more Pythonic * Improve comment on arm shift register handling and capstone behavior 15 February 2018, 20:47:36 UTC
fca3179 System calls addition - sys_getrandom and sys_openat (#640) * version argument in manticore * Fix 591 - Exception Handler * Issue 597 - Remove the unused policy argument * getrandom system call - Initial commit * openat system call initial commit * getrandom system call fixes * openat and getrandom system call * Update sys_getrandom * Make BadFd more generic as FdError * Resolve mode inside File * Support opening directory with open(2) * Fix fd leak * add sys_openat tests 14 February 2018, 21:52:54 UTC
843a4f3 Fix finalize (#738) * fix finalize * Document the state id -1 14 February 2018, 21:28:50 UTC
2f2de29 Better plugin context management. (#730) * Better plugin context management. Example UseDef logging plugin for evm * Example plugin to log use-def * Better plugin name checking hints * Better plugin name checking hints2 * Fix uninititalize-plugins (found via the warning) * Remove redundant variables in example * Typo * Better warning print (class name) * better safety check + context fix * better variabke naming * Update manticore.py 14 February 2018, 20:13:40 UTC
84aca4a Add docs on symbolic input (#750) * Change tagline * Not sure socket support is a gotcha exactly * initial docs * Better docs * Code blocks * Links to the api docs * Improve language * Doc add_symbolic_file in public API * Rm stray init 14 February 2018, 00:15:54 UTC
f8587ff Bump default gas budget (#740) 13 February 2018, 23:55:52 UTC
4d84551 Fixed Issue #723 - changed _pop() to _pop_vm() (#745) 08 February 2018, 20:25:40 UTC
5a38737 Fix sha3 (#703) * the fix * Add default example sha3 when unknown * Review * Remove IF statement on potentially symbolic value 05 February 2018, 18:00:05 UTC
2f2b081 Added multiprocessing support to generate testcases in finalize (#697) * Added multiprocessing support to generate testcase in finalize * Improve the code using @feliam suggestions * Fixed multiprocessing code. Now it really seems to work!â„¢ 02 February 2018, 18:37:24 UTC
9730790 Fix incorrect number of transaction in certain states (#724) * privatize Executor.put, use in evm * better typeerror * Simplify execute(), directly raise exception in _process... 02 February 2018, 18:23:04 UTC
9f7b87d Use the 'force' flag for bss zeroing (#719) * Clean up bss trailer zeroing 31 January 2018, 16:47:46 UTC
a1f8097 Quick evm header fix (#679) * Quick evm header fix * Fix BLOKKHASH 30 January 2018, 20:31:28 UTC
c006843 Introduce a 'force' parameter to memory access functions (#632) * whitespace cleanup * Remove access check from COWMap.__setitem__/__getitem__ * Access checks happen via read/write, so these checks are unecessary. * Add force parameter to read/write functions * Introduce to AbstractCpu's accessors * Add mem force tests * Apply force param to symbolic operations * Add symbolic force write tests * Clean up test * Fix symbolic write behavior; add tests 30 January 2018, 17:17:27 UTC
faf1d16 Allow importing solidity files from current folder (#717) 29 January 2018, 23:28:31 UTC
60d2b61 Run linux examples in Travis (#668) * 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 18 January 2018, 20:50:13 UTC
7907d01 Added support to analyze solidity source code with multiple contracts using the --contract command line option (#712) 17 January 2018, 19:11:13 UTC
aeb3b99 the fix (#702) 16 January 2018, 16:53:01 UTC
000ef09 Update state.py (#709) replace `\0` with `NULL` as per issue #699 16 January 2018, 16:26:07 UTC
03f92a7 Update manticore.py (#710) Removed first of twice declared function `enqueue` as per #706 16 January 2018, 16:25:16 UTC
465c926 Fix metadata setting race (#675) * Set the sol metadata before building the contract account * EVM account lazy hashes * new_address now public * Micro-optimization more readable * Arithmetanic 08 January 2018, 23:34:27 UTC
7b2607b Improved readability of .tx files using repr to print function call arguments (#694) 08 January 2018, 17:09:27 UTC
98712cf Adds support for unmarshaling bytes32 type (#680) * Adds support for unmarshaling bytes32 type * Review fixes 05 January 2018, 21:04:35 UTC
976f314 Add missing DivideByZeroError import and replaced DivideError by DivideByZeroError (#692) 05 January 2018, 19:06:00 UTC
743d479 Added missing **kwargs to ManticoreEVM constructor (#686) 05 January 2018, 15:39:25 UTC
3b79609 NotImplemented(x) -> NotImplementedError(x) (#677) 29 December 2017, 15:49:50 UTC
b6753a3 Adds support for unmarshaling uint8 type (#681) 29 December 2017, 15:48:07 UTC
4c0f4bc Trick rtd into thinking we don't need z3 (#671) 23 December 2017, 00:11:25 UTC
a9be273 Update README.md (#670) 22 December 2017, 23:44:09 UTC
8a588c7 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 Update __main__.py (#669) 22 December 2017, 23:27:40 UTC
6499c0e 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 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 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 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 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 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 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 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 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 Add error handling to solc wrapper (#651) 20 December 2017, 18:55:17 UTC
cc8ee56 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 Seth: Fix uninitialized address in _generate_testcase_callback (#650) 19 December 2017, 17:47:10 UTC
591d7b8 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 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 fix for #608 using a local definition (#644) 15 December 2017, 21:57:02 UTC
670076c Fix compilation bug (#645) 15 December 2017, 21:53:54 UTC
9839cbd 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 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 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 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 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 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 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 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 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 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 Fixed Issue #619 (#623) Add newlines in .trace file generation 04 December 2017, 22:53:19 UTC
be0141e Amend pr guidelines (#615) 01 December 2017, 21:14:56 UTC
77b0542 Fixed Issue #533 (#606) * Remove Platform._path 30 November 2017, 15:16:08 UTC
9c777e6 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 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 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 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
back to top