cf6cd0e | Mark Mossberg | 07 June 2018, 21:45:07 UTC | Fix z3 install regression (#923) * Add back z3 * Rm manual install | 07 June 2018, 21:45:07 UTC |
b184f4e | feliam | 06 June 2018, 18:44:53 UTC | Integer overflow detector improvements (#913) * Rearrange Detectors closer to ethereum. Fix Detector reporting for each state. * codeclimate * codeclimate * Move detectors back to __main__. Commandline argument added * Codeclimate * Findings and global_findings for each detectot. Move global findings to its own file on reports * Codeclimate * Better commandline arguments. Better report on failing constructors * Codeclimate. All assertion bench done * Convenience evm stack function. Doc improvements * Explicit reference in ded_evm_execute_instruction * Assembler to solidity line number fixed * Better variable names * CC * CC * Regression tests * Better int overflow detector (expensive) * Added a few more IO reg tests * CC * CC * CC * Fix io tests. Remove dead code. Improve Transaction.set_result * CC * Fix wrong merge * relax bench test * Remove Remove * Reviewed | 06 June 2018, 18:44:53 UTC |
adf010e | feliam | 06 June 2018, 13:04:18 UTC | Add regression test for posCAll bug (#918) | 06 June 2018, 13:04:18 UTC |
49478b1 | Pierre Pronchery | 05 June 2018, 23:34:24 UTC | Add support for NetBSD as a host OS (#893) With these changes, I am able to run Manticore on Linux (static) binaries from a NetBSD host. Tested with NetBSD/amd64 (7.1_STABLE XEN3_DOM0). | 05 June 2018, 23:34:24 UTC |
21c1ea5 | feliam | 05 June 2018, 15:05:35 UTC | Fix pos CALL/DELEGATECALL/STATICCALL/CALLCODE (#917) * Fix pos CALL/DELEGATECALL/STATICCALL/CALLCODE * CC | 05 June 2018, 15:05:35 UTC |
5d7c7f1 | feliam | 04 June 2018, 23:02:53 UTC | Dev evm INVALID detector (#910) * Rearrange Detectors closer to ethereum. Fix Detector reporting for each state. * codeclimate * codeclimate * Move detectors back to __main__. Commandline argument added * Codeclimate * Findings and global_findings for each detectot. Move global findings to its own file on reports * Codeclimate * Better commandline arguments. Better report on failing constructors * Codeclimate. All assertion bench done * Convenience evm stack function. Doc improvements * Explicit reference in ded_evm_execute_instruction * Assembler to solidity line number fixed * Better variable names * CC * CC * Regression tests * CC * Reviewed | 04 June 2018, 23:02:53 UTC |
1fcb249 | Paul Kehrer | 04 June 2018, 14:52:04 UTC | incremental py3: print statements, octals, and more (#908) * incremental py3: automated conversion work print statements, octal literals, and various small changes to support identical calling between py2 and py3. Plus a few missed exception syntax, etc. * more print function imports, fix a syntax issue * revert an import change for the moment * different absolute import | 04 June 2018, 14:52:04 UTC |
7203958 | Paul Kehrer | 01 June 2018, 18:35:31 UTC | Incremental Linting (#911) * flake * start removing * imports wildcard imports make it so we can't easily reason about what is available in scope and limit the utility of linting tools * a wide variety of pep8 related changes Also adds a tox.ini entry for flake8 experimentation right now. * fixes | 01 June 2018, 18:35:31 UTC |
0589437 | Paul Kehrer | 30 May 2018, 15:06:06 UTC | absolute imports (#907) | 30 May 2018, 15:06:06 UTC |
78df0e9 | Paul Kehrer | 30 May 2018, 13:42:04 UTC | install z3-solver in our install script so it's available (#906) | 30 May 2018, 13:42:04 UTC |
69c9d9b | Paul Kehrer | 30 May 2018, 13:38:42 UTC | py3 incremental: remove long literals (#905) * py3 incremental: remove long literals * install z3-solver in our install script so it's available | 30 May 2018, 13:38:42 UTC |
2d2ba90 | Paul Kehrer | 30 May 2018, 03:16:59 UTC | switch the exception syntax to py3 compatible (#904) | 30 May 2018, 03:16:59 UTC |
c29c3cc | feliam | 25 May 2018, 23:22:49 UTC | [WIP] Large EVM refactor (#843) * 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 * WiP-research Use raw no-optimized smtlib generic arrays as memory and storage * remove pdebug print: * Fix tests * Review fixes * review fix * fix gas variable * Review fixes * git hell * fix asm_to_smtlib * Fix vm.gas access * getvalue hack * Improve internal API * solver.can_be_true(cs, True) must check that cs is feasible * Simpler callstack code * Fix merge and tests * Fix copy.copy * Move state ids to private * New internal add_transaction api * Fix tx.return_data * Remove comments * Do not rely on .last_exception * Fix evm tests * peping * peping * Peping +test fixes * Peping +test fixes * Peping +test fixes * Fix endTx pop vm * Improve speed and simplifications. Remove internal_transaction mess * Change test_eth.EthTests test a bit * Fix some tests and CALLDATALOAD * Add CALLCODE and reachability test frame * Fix calldataload, msize. Add reachability test frame * Fixlog * Clean reachability test * Fixe CODECOPY concrete * Some style sdded * peping * Remove origin and price from EVM as it can be retrieved from human tx * Added current_human_transaction and last_human_transaction * peping * Refactor tests * Increased argument count allowed CC * Initial automatic library loading (no toposort) * pep8 * Accepts any number of libaries on any ordering * pep8 and relaxed codeclimate * Simple library test * merge libraries in * Solve https://capturetheether.com/challenges/math/mapping/ * Remove debug print * More robust path creation for test files * DELEGATECALL support * generate testcases only at finalize() * Add functools32 as dependency for lru in py2 * Manticore Library PoC * Favor bytearray * Favor bytearray * config * Fix concolic and sha3 arraybyte-> str * Fix concolic * Fix typo * remove absolute path from tests so it fits in link placeholders * Shrink path spec for solc * Hopefuly Fix solc invocation bug * FFFFFFFFFIIIIIIIIIIIIX ITTTTTTTTTTTTTTT * Better performance on visitors cache, and new ArraySlice * better os joining, evm library link, and tx based events * Fitering solidity functions plugin * add itereator capabilities to ConstarintSet * Some solver functions exported to state * bye bye metaclass dynamic check * extra simplification * Improved symbolic gas and other bugfixes * Better visit_BitVecExtract * Default initial timestamp and block number * 99 typos * Re-enable account.named_func() trick * typo * Better stronger * Added default symbolic arguments to constructor.. * Remove constant marked functions from multi_tx * Add default 16G memory cap to z3 * concretized_args now supports concretizing address arguments to all possible accounts * Fix coverage calc * reset fails sometimes * PEP8 ROA (#900) * pep8 formatting * Code Climate updates * cyclocomplexity-- * Refunds moved from the instruction to the the exeption catching * merge * merge * accept both bytearray and str * doc * blockhash changed and returns a symbolic value now, so these tests are wrong * A bugfix * pep8/complexity updates * remove more questionable tests same thing as with the blockhash thing. we're doing things a little more symbolically now so comparing to concrete will not work * Accomodate our chubby State class * Keep moving the refunds * Disble reachability test for now * Remove double declaring log for now * Fix coverage calculation was prev creating a generator, which you can't do `in` on?? * require 1 tx for int overflow test * Fix path tests * Remove debug print in tests * Only enable gas when necessary * codeclimate fixes * Fix concretize_args * only 1 tx * Disable max/min support in solver | 25 May 2018, 23:22:49 UTC |
f73fc40 | Matias Bordese | 25 May 2018, 17:58:18 UTC | Install capstone from next branch, optional via pip --process-dependency-links. (#896) * Install capstone from next branch, optional when passing --process-dependency-links to pip. * Alter readme wording | 25 May 2018, 17:58:18 UTC |
b9af9bf | Kirwan | 25 May 2018, 14:35:24 UTC | Fixed variable name typo. Issue #898. (#899) | 25 May 2018, 14:35:24 UTC |
b5d9d1d | Pierre Pronchery | 18 May 2018, 22:01:09 UTC | Khorben/479 assert brk (#890) * Remove assertion on brk() Manticore assumed that new calls to brk(2) were always increasing the size of the data segment. This is not always true, since programs may decide to reduce it as well. Tested with a static Linux/i386 program on macOS/amd64. * Minor optimization Only compute perms if actually needed. * Avoid creating memory mappings with a negative size This should completely fix #479 this time. * Update sys_brk() implementation * Add regression tests for brk * Added brk test binary src | 18 May 2018, 22:01:09 UTC |
68c4716 | feliam | 18 May 2018, 21:14:34 UTC | Remove solidity in minimal.py example (#895) * Remove all needs for solidity in minimal.py example * Separate evm only minimal example | 18 May 2018, 21:14:34 UTC |
f4c4c9a | Catena cyber | 18 May 2018, 16:19:11 UTC | Add LD_LIBRARY_PATH type feature (#878) * Add LD_LIBRARY_PATH type feature Use of environment variable MANTICORE_LD_PATH instead of LD_LIBRARY_PATH which is protected on MacOS Fixes #93 * Comments taken into account Commit to be squashed afterwards * Codeclimate fix * Support LD_LIBRARY_PATH in the loader | 18 May 2018, 16:19:11 UTC |
71c90c3 | Catena cyber | 18 May 2018, 15:40:15 UTC | Add dedicated files for ARGV/ENVP in report (#863) * Add dedicated files for ARGV/ENVP in report Fixes #169 * Add unit test for argv/env reports * Code review taken into account | 18 May 2018, 15:40:14 UTC |
cb1f244 | Yan Ivnitskiy | 18 May 2018, 15:36:05 UTC | Fix Linux initialization (#894) * Move _open() outside of assert * Make a few tests aware of assert-less exec * Use the __debug__ builtin instead of sys flags | 18 May 2018, 15:36:05 UTC |
efbcd08 | feliam | 16 May 2018, 14:39:23 UTC | Rollback to old mini assembler only example (#889) * Rollback to old mini assembler only example * Rollback reordering and remove comment * Ah no. We need to keep the states in the lists until the end * Update ethereum.py * Use calculate coverage funciton | 16 May 2018, 14:39:23 UTC |
79d90ae | Daniel James | 15 May 2018, 16:29:43 UTC | Typo in ManticoreEVM#last_return (#886) Encountered the following trace: ``` Traceback (most recent call last): …, in <module> m.last_return() File "…/manticore/ethereum.py", line 906, in last_return return state.platform.last_return AttributeError: 'EVMWorld' object has no attribute 'last_return' ``` It appears this bug was introduced in commit ed29a22f The same bug was also lurking in `EVMWorld#run` https://github.com/trailofbits/manticore/pull/886#issuecomment-386626556 | 15 May 2018, 16:29:43 UTC |
6747c43 | Pierre Pronchery | 11 May 2018, 15:52:07 UTC | Partially implement fork(2) (#892) * Partially implement fork(2) Really this return ENOSYS (not implemented), which allows sub-processes to detect the condition and continue to run (or crash on their own if they did not expect fork() to fail). * Move sys_fork to correct class; add a basic docstring | 11 May 2018, 15:52:07 UTC |
f6d0cd4 | Pierre Pronchery | 11 May 2018, 15:43:27 UTC | Partially implement chroot(2) (#891) * Partially implement chroot(2) Really this return EPERM (permission denied), which seems to be absolutely fine since a non-privileged user is currently assumed. This is what would normally be returned in this scenario. * update chroot implementation | 11 May 2018, 15:43:27 UTC |
44ef97e | Catena cyber | 08 May 2018, 18:15:03 UTC | Loads shared ELF to analyze a function (#861) * Loads shared ELF to analyze a function See #69 * Bring in recent changes to concolic.py * Loads shared ELF to analyze a function * Fix the 'linux' class method prototype | 08 May 2018, 18:15:03 UTC |
b9a515c | ggrieco-tob | 07 May 2018, 13:23:40 UTC | Added optional message parameter in ConcretizeMemory (#885) * Added optional message parameter in ConcretizeMemory In some files (e.g. manticore/core/cpu/abstractcpu.py), ConcretizeMemory is invoked with a message but it is interpreted as the "policy" value now, causing a crash. This commit should fix that issue. * Small code refactoring to address code review | 07 May 2018, 13:23:40 UTC |
109180f | feeb | 04 May 2018, 20:03:35 UTC | Merge pull request #888 from trailofbits/dev-019 Manticore 0.1.9 | 04 May 2018, 20:03:35 UTC |
23a1412 | Mark Mossberg | 04 May 2018, 18:27:41 UTC | Finish changelog | 04 May 2018, 18:27:41 UTC |
66640c8 | Mark Mossberg | 04 May 2018, 18:17:47 UTC | Initial changelog | 04 May 2018, 18:17:47 UTC |
5c9e635 | Mark Mossberg | 04 May 2018, 18:07:20 UTC | Bump version | 04 May 2018, 18:07:20 UTC |
9c258bd | Yan Ivnitskiy | 03 May 2018, 22:52:29 UTC | Update concolic.py (#887) * Update concolic.py * update what evt we subscribe to | 03 May 2018, 22:52:29 UTC |
9307475 | Arun John Kuruvilla | 24 April 2018, 16:36:06 UTC | Raises exception for Solidity compiler not installed. Issue #867 (#877) | 24 April 2018, 16:36:06 UTC |
fb3c01f | Catena cyber | 24 April 2018, 10:32:18 UTC | Sign extends x86 AND operand (capstone bug) (#852) * Sign extends x86 AND operand (capstone bug) Fixes #560 * Regression test for X86 AND with sign extension For issue #560 | 24 April 2018, 10:32:18 UTC |
4a98110 | Daniel James | 20 April 2018, 15:05:04 UTC | Support Solidity compilation of a file handle (#873) This preserves the current behavior of using a string value as Solidity source code, but now also supports instances of the `file` type, and will use the `name` property of the file object to pass to the subprocess invocation of solc. This implementation also now ensures resource cleanup for the stdout and stderr pipe handles. Make use of compiling via file handles in multi_tx_analysis This will enable import statements in Solidity code to work for the Manticore CLI out of the box Note, Manticore still wants the source code, so if we compiled using a file handle, rather than a source string, we need to read in the source fixes #705 | 20 April 2018, 15:05:04 UTC |
92cfab3 | feliam | 17 April 2018, 21:58:58 UTC | Fix check of solc metadata tail (#848) * Fix check of solc metasata tail * Remove debug print * fix metadat tail removal * Yet another loose end - fixed * Better version parsing and review fixes * Remove debug print * pep8 | 17 April 2018, 21:58:58 UTC |
71bf5d4 | Pierre Pronchery | 17 April 2018, 21:25:40 UTC | Remove assertion on brk() (#860) Manticore assumed that new calls to brk(2) were always increasing the size of the data segment. This is not always true, since programs may decide to reduce it as well. Tested with a static Linux/i386 program on macOS/amd64. (https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/mm/mmap.c?h=v4.17-rc1#n226) | 17 April 2018, 21:25:40 UTC |
2814723 | Daniel James | 17 April 2018, 00:44:29 UTC | Support ABI parsing of specs that use function types (#874) See http://solidity.readthedocs.io/en/v0.4.21/types.html#function-types This is a special case of `bytes24`, 24 bytes are right zero padded in a 32 byte word. | 17 April 2018, 00:44:29 UTC |
bfffa78 | Daniel James | 13 April 2018, 20:32:17 UTC | Fix Issue #869 (#872) * Add testcase for empty types bug * Fix Issue 869 Bug introduced in https://github.com/trailofbits/manticore/commit/0fc4bba9ad8ef61f9e1f23bc6d0a88b7a05aa385#diff-6cf4568b5e8712514d226faa04e417fbR450 - Move empty string up to the beginning of the if-else chain. - Correct test for bool type case fixes #869 | 13 April 2018, 20:32:17 UTC |
aa79258 | ggrieco-tob | 10 April 2018, 13:34:38 UTC | Added --txnocoverage option to manticore cli (#849) * added txnocoverage option to manticore cli * improved code readability | 10 April 2018, 13:34:38 UTC |
d5a692f | Mark Mossberg | 09 April 2018, 16:01:12 UTC | Rm the slow solver code (#859) | 09 April 2018, 16:01:12 UTC |
0fc4bba | ggrieco-tob | 05 April 2018, 20:43:15 UTC | Added all the uint types supported by Solidity (#811) * added all the uint types supported by solidity * fixed some incorrect indentation * Added missing space around "+" * added some proper exceptions and included all the integer parameter types * improved exception handling * missing check * added preliminary version of unit test for ABI * x * half finished * tes * fixes * docstr * Raise exception only once * cc * Fix merge bug * fix merge bug in tests * Fix bugs introduced in merge | 05 April 2018, 20:43:15 UTC |
6616b9e | Mark Mossberg | 05 April 2018, 19:31:16 UTC | Ethereum ABI and misc fixes (#855) * Port most of the less invasive/controversial changes from dev-evm-dynamicarguments * Port section of fixes from ethereum.py * Port tests unrelated to concretizing dyn args * Add remaining changes from evm.py * clean, fmt, code climate * rm unnecessary setup * disable?? * fmt * remove all the returns * lol cc * Rm unused code * port to .format * don't use map (for py2/3 compat) * simplify slicing * Rm dyn arg code, since it doesn't really even work and will be included when dev-evm-dynamicarguments is totally resolved * add address/get_uint test * Revert "Rm dyn arg code, since it doesn't really even work" 69188da4caf1ff74288b6398e8140f627dc495c4 | 05 April 2018, 19:31:16 UTC |
af779d8 | cclauss | 03 April 2018, 20:47:47 UTC | Do not forget self (again) (#854) | 03 April 2018, 20:47:47 UTC |
bda9c09 | Mark Mossberg | 30 March 2018, 22:26:26 UTC | Manticore 0.1.8 (#851) (thanks for 1k) * Bump version numbers * initial changelog update * Add changelog content * add contribs | 30 March 2018, 22:26:26 UTC |
2f382a9 | Arun John Kuruvilla | 30 March 2018, 14:44:34 UTC | Added KeyError Exception for offsets not in srcmap. Issue #832 (#839) | 30 March 2018, 14:44:34 UTC |
03af65e | ggrieco-tob | 22 March 2018, 12:40:51 UTC | A more complete example to initialize and explore a smart contract with manticore (#827) * A more complete example to initialize and explore a smart contract with manticore * Removed outdated comments | 22 March 2018, 12:40:51 UTC |
9c19014 | Disconnect3d | 21 March 2018, 19:34:19 UTC | Fix duplicated armv7 test name (#833) * Fix duplicate armv7rf test name * Small refactor of armv7rf * Proper test classes names | 21 March 2018, 19:34:19 UTC |
d1051f6 | feliam | 20 March 2018, 17:30:09 UTC | Push 0 on internal revert (#830) | 20 March 2018, 17:30:09 UTC |
2eb0025 | Mark Mossberg | 19 March 2018, 18:22:08 UTC | 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 | ggrieco-tob | 19 March 2018, 18:08:22 UTC | 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 | Matthew Roll | 19 March 2018, 13:24:04 UTC | 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 | Mark Mossberg | 16 March 2018, 21:48:36 UTC | 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 | Mark Mossberg | 16 March 2018, 17:32:32 UTC | 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 | Mark Mossberg | 15 March 2018, 20:41:29 UTC | 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 | Arun John Kuruvilla | 15 March 2018, 20:31:18 UTC | Raises exception for contract with a function without code. Issue #789 (#797) | 15 March 2018, 20:31:18 UTC |
cf789a4 | Yan Ivnitskiy | 14 March 2018, 20:45:12 UTC | 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 | Yan Ivnitskiy | 12 March 2018, 19:27:18 UTC | 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 | Dan Guido | 12 March 2018, 18:40:06 UTC | 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 | Yan Ivnitskiy | 12 March 2018, 16:19:38 UTC | Update Create (evm exception) arguments (#805) * Update Create arguments * Add integration test * Dial back the procs | 12 March 2018, 16:19:38 UTC |
fbf0823 | ggrieco-tob | 07 March 2018, 17:57:59 UTC | Very quick fix to avoid STOP instructions to return random values (#792) | 07 March 2018, 17:57:59 UTC |
f4118f4 | ggrieco-tob | 06 March 2018, 21:35:19 UTC | 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 | Disconnect3d | 05 March 2018, 23:42:48 UTC | 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 | Disconnect3d | 02 March 2018, 20:55:13 UTC | Change assertion->exception and add msg when target file is not present (#778) | 02 March 2018, 20:55:13 UTC |
7349a0b | Feist Josselin | 02 March 2018, 20:52:56 UTC | Fix out-of-bound index in EVMWorld._process_pending_transaction (#786) | 02 March 2018, 20:52:56 UTC |
03ecb3f | Mark Mossberg | 01 March 2018, 23:48:10 UTC | Fix cli --data parameter (#781) * Actually use args.data * Update decree | 01 March 2018, 23:48:10 UTC |
17e9098 | Arun John Kuruvilla | 01 March 2018, 23:27:52 UTC | 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 | Disconnect3d | 01 March 2018, 23:24:27 UTC | Unicorn emulator: get uc_arch & uc_mode values just once (#779) | 01 March 2018, 23:24:27 UTC |
20cb97f | Disconnect3d | 01 March 2018, 18:40:51 UTC | 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 | feliam | 28 February 2018, 23:11:54 UTC | 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 | Pierre Pronchery | 27 February 2018, 17:33:25 UTC | Let the Python interpreter be specified externally (#774) | 27 February 2018, 17:33:25 UTC |
461da57 | feliam | 27 February 2018, 00:09:34 UTC | 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 | Yan Ivnitskiy | 23 February 2018, 23:31:31 UTC | Manticore 0.1.7 Release (#764) | 23 February 2018, 23:31:31 UTC |
394401e | Yan Ivnitskiy | 23 February 2018, 23:07:49 UTC | Fix ARMv7's ADD (#769) * Fix armv7's ADD | 23 February 2018, 23:07:49 UTC |
b9aa483 | Mark Mossberg | 23 February 2018, 20:42:15 UTC | 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 | Mark Mossberg | 23 February 2018, 16:13:55 UTC | 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 | Mark Mossberg | 22 February 2018, 21:04:01 UTC | 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 | Jean Jordaan | 22 February 2018, 13:17:49 UTC | Drive-by typo correction ;-) (#762) | 22 February 2018, 13:17:49 UTC |
ebe0baa | Mark Mossberg | 20 February 2018, 20:10:29 UTC | 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 | Mark Mossberg | 20 February 2018, 12:57:07 UTC | Fix evm state handling regression (#741) * Revert breaking change * Add assertion to verify states being queued | 20 February 2018, 12:57:07 UTC |
105a7d3 | Disconnect3d | 20 February 2018, 01:48:26 UTC | Speedup x86 execution by caching AMD64RegFile.all_registers (#755) * Cache `all_registers` for AMD64RegFile | 20 February 2018, 01:48:26 UTC |
680fc8f | Disconnect3d | 17 February 2018, 16:51:58 UTC | 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 | Garret Reece | 15 February 2018, 20:47:36 UTC | 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 | Srinivas P G | 14 February 2018, 21:52:54 UTC | 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 | feliam | 14 February 2018, 21:28:50 UTC | Fix finalize (#738) * fix finalize * Document the state id -1 | 14 February 2018, 21:28:50 UTC |
2f2de29 | feliam | 14 February 2018, 20:13:40 UTC | 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 | Mark Mossberg | 14 February 2018, 00:15:54 UTC | 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 | feliam | 13 February 2018, 23:55:52 UTC | Bump default gas budget (#740) | 13 February 2018, 23:55:52 UTC |
4d84551 | Arun John Kuruvilla | 08 February 2018, 20:25:40 UTC | Fixed Issue #723 - changed _pop() to _pop_vm() (#745) | 08 February 2018, 20:25:40 UTC |
5a38737 | feliam | 05 February 2018, 18:00:05 UTC | 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 | ggrieco-tob | 02 February 2018, 18:37:24 UTC | 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 | Mark Mossberg | 02 February 2018, 18:23:04 UTC | 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 | Yan Ivnitskiy | 31 January 2018, 16:47:46 UTC | Use the 'force' flag for bss zeroing (#719) * Clean up bss trailer zeroing | 31 January 2018, 16:47:46 UTC |
a1f8097 | feliam | 30 January 2018, 20:31:28 UTC | Quick evm header fix (#679) * Quick evm header fix * Fix BLOKKHASH | 30 January 2018, 20:31:28 UTC |
c006843 | Yan Ivnitskiy | 30 January 2018, 17:17:27 UTC | 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 | feliam | 29 January 2018, 23:28:31 UTC | Allow importing solidity files from current folder (#717) | 29 January 2018, 23:28:31 UTC |
60d2b61 | Yan Ivnitskiy | 18 January 2018, 20:50:13 UTC | 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 | ggrieco-tob | 17 January 2018, 19:11:13 UTC | 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 | feliam | 16 January 2018, 16:53:01 UTC | the fix (#702) | 16 January 2018, 16:53:01 UTC |
000ef09 | Alexander Holman MBCS AMIAP | 16 January 2018, 16:26:07 UTC | Update state.py (#709) replace `\0` with `NULL` as per issue #699 | 16 January 2018, 16:26:07 UTC |
03f92a7 | Alexander Holman MBCS AMIAP | 16 January 2018, 16:25:16 UTC | Update manticore.py (#710) Removed first of twice declared function `enqueue` as per #706 | 16 January 2018, 16:25:16 UTC |