https://github.com/trailofbits/manticore

sort by:
Revision Author Date Message Commit Date
9607a17 tests: Swap assertions 23 May 2019, 07:32:26 UTC
dbb9468 tests: Fix movhps shellcode Was using qword and not qword ptr. 23 May 2019, 07:09:43 UTC
7225348 tests: Remove relative import Works locally, fails on CI. 22 May 2019, 20:41:42 UTC
51f62d4 tests: Fix tests 22 May 2019, 20:13:17 UTC
152da00 tests: Add movhps tests 22 May 2019, 19:17:40 UTC
04839db Update manticore/native/cpu/x86.py Co-Authored-By: Eric Hennenfent <ecapstone@gmail.com> 22 May 2019, 17:18:12 UTC
757a6c6 x86: MOVHPS support Closes #1432. 22 May 2019, 14:39:45 UTC
39a23a5 Symbolic tests rf otf (#1441) * Add assertions to auto test gen * Add symbolic tests * Make calldata symbolic * EVM: Support exp aka pow (#1361) * EVM: Add support for EXP with concrete/solvable exponent Adds support for EXP aka POW, with concrete or solvable exponent, fixing https://github.com/trailofbits/manticore/issues/1005 effectively. Not sure if we can do it any better - it seems z3 doesn't have exp/pow for bitvectors. * Update operators.py * Update evm.py * Use concretized_args * Move Operators.POW to EVM._exp * Extend travis wait for output to 30m * Extend travis build to 60m... * Fix Operators.ITE -> Operators.ITEBV * Split ethereum travis job to two jobs * EVM.EXP: concretize base=SAMPLED * Fix concrete tests: use to_constant * Fix set storage in concrete tests * Split ethereum_vm tests into concrete and symbolic * Fix travis tests * Split symbolic tests into two jobs * Split VMTests even more * More tests split * [WIP][WIP][WIP] Moving executor functionality to ManticoreBase and refactor concurrency shared data * Workspace locks * Concurrency flavor configurable from commandline * Asserts and refactorrrrrrrs * Remove unused callback * Some CC * Some CC * Some CC * Fix solver vs Z3Solver * Make solver a singleton based on tid/pid. REfactor m._save. Fix some tests * typo and evm bugfix * Fix some tests referecing global solver * Fix concolic tests and more global solver refs * Fix tests * CC fixes * Fix tests. Fix testcase id generation * Move profiling to a plugin and fix tests * Add solver intance ref to mem test * Fix mem workspace tests * Fix output checking tests * Fix z3solver ref * Relax verbosity/log tests * Moved Workers to its own file * Relax output tests * Relax output tests * Fix profiling test * Fix more tests * Default multiprocessing * Try to clean mcore __del__ * Change Worker life span * Fix Single mode * CC * revert verbosity travis * CC and solver ref fix * Relax ouput checking tests and some bugfixes * running -> ready * Fixing teeests * add weak cache to _load * del debug prints * Adding config.py support for Enums * Try/Remove generate_testcase event as it never occurs online. Fix tests * Fix CC * Kill the cache when start/stop run. Remove debugprints. clean tests * Fix travis test _other_ * Fix native tests and timeout * Fix state.must_be_true * fix CC * Changing fstat tets...: ~' * LLLLLLLLinux tests * Skip unicorn concrete test for now * Try fix CodeClimate * Try fix CodeClimate * Update evm examples to newest solidity * Complete transformation of consts.mprocessing to enum * Add blank line (codeclimate) * Using the enum instead of the string * Using the enum instead of the string * Merge and fix * CC and debug print * Move fee consumption to checkpoint so it is not done twice. Fix frontier test generator * Fix Job Count (and force travis rebuild) ``` 0.02s$ ./cc-test-reporter sum-coverage --output - --parts $JOB_COUNT coverage/codeclimate.*.json | ./cc-test-reporter upload-coverage --input - Error: expected 3 parts, received 4 parts ``` * Add tx number to testcase log * Attempt to do vmtests on the fly * Del test verbosity * Update .travis.yml Co-Authored-By: Eric Hennenfent <ecapstone@gmail.com> 21 May 2019, 22:07:47 UTC
43b9a0c Unicorn dependency update (#1440) As noted, we should roll this back whenever Unicorn pushes to PyPi * Remove write to Unicorn x86 FS register In latest version of unicorn (778171fc9546c1fc3d1341ff1151eab379848ea0) a write to FS will cause segfault or hang if we try to write to it. Issue #1434 * Update unicorn dependency to latest commit on master Latest Unicorn master commit is 778171fc9546c1fc3d1341ff1151eab379848ea0 Issue #1434 21 May 2019, 20:49:45 UTC
91bb222 aarch64: do not use the 'procs' argument (#1439) 17 May 2019, 21:51:48 UTC
00d551d Symbolic tests rf (#1431) * Add assertions to auto test gen * Add symbolic tests * Make calldata symbolic * EVM: Support exp aka pow (#1361) * EVM: Add support for EXP with concrete/solvable exponent Adds support for EXP aka POW, with concrete or solvable exponent, fixing https://github.com/trailofbits/manticore/issues/1005 effectively. Not sure if we can do it any better - it seems z3 doesn't have exp/pow for bitvectors. * Update operators.py * Update evm.py * Use concretized_args * Move Operators.POW to EVM._exp * Extend travis wait for output to 30m * Extend travis build to 60m... * Fix Operators.ITE -> Operators.ITEBV * Split ethereum travis job to two jobs * EVM.EXP: concretize base=SAMPLED * Fix concrete tests: use to_constant * Fix set storage in concrete tests * Split ethereum_vm tests into concrete and symbolic * Fix travis tests * Split symbolic tests into two jobs * Split VMTests even more * More tests split * [WIP][WIP][WIP] Moving executor functionality to ManticoreBase and refactor concurrency shared data * Workspace locks * Concurrency flavor configurable from commandline * Asserts and refactorrrrrrrs * Remove unused callback * Some CC * Some CC * Some CC * Fix solver vs Z3Solver * Make solver a singleton based on tid/pid. REfactor m._save. Fix some tests * typo and evm bugfix * Fix some tests referecing global solver * Fix concolic tests and more global solver refs * Fix tests * CC fixes * Fix tests. Fix testcase id generation * Move profiling to a plugin and fix tests * Add solver intance ref to mem test * Fix mem workspace tests * Fix output checking tests * Fix z3solver ref * Relax verbosity/log tests * Moved Workers to its own file * Relax output tests * Relax output tests * Fix profiling test * Fix more tests * Default multiprocessing * Try to clean mcore __del__ * Change Worker life span * Fix Single mode * CC * revert verbosity travis * CC and solver ref fix * Relax ouput checking tests and some bugfixes * running -> ready * Fixing teeests * add weak cache to _load * del debug prints * Adding config.py support for Enums * Try/Remove generate_testcase event as it never occurs online. Fix tests * Fix CC * Kill the cache when start/stop run. Remove debugprints. clean tests * Fix travis test _other_ * Fix native tests and timeout * Fix state.must_be_true * fix CC * Changing fstat tets...: ~' * LLLLLLLLinux tests * Skip unicorn concrete test for now * Try fix CodeClimate * Try fix CodeClimate * Update evm examples to newest solidity * Complete transformation of consts.mprocessing to enum * Add blank line (codeclimate) * Using the enum instead of the string * Using the enum instead of the string * Merge and fix * CC and debug print * Move fee consumption to checkpoint so it is not done twice. Fix frontier test generator * Fix Job Count (and force travis rebuild) ``` 0.02s$ ./cc-test-reporter sum-coverage --output - --parts $JOB_COUNT coverage/codeclimate.*.json | ./cc-test-reporter upload-coverage --input - Error: expected 3 parts, received 4 parts ``` * Add tx number to testcase log * Del test verbosity 17 May 2019, 21:49:26 UTC
65b7314 AArch64: fix ldrb size (#1433) * aarch64: test strb followed by ldrb (immediate) * aarch64: use the right size in '_ldr_str_immediate' Discovered due to 'ldrb w11, [x9]' failing in symbolic mode. 16 May 2019, 19:46:52 UTC
37aeae8 System Call Audit (#1384) * Move unimplemented syscall logging to decorator Adds [wrapt module](https://wrapt.readthedocs.io/en/latest/) from pypi * Move unimplemented calls further down * Add stubs for unimplemented system calls * Move most stubs back to stub file A few have been left in linux.py because they're necessary for other projects * Codeclimate * Fix discrepancies in syscall ABI * Removed extraneous void argument for getpid and gettid * Added missing sigsetsize parameter for rt_sigaction * Removed incorrect 'flags' parameter on accept (should be on accept4 * Fixed 'SocketDesc' has no attribute 'close' error * (Partially) Fixed duplicate constraint error with socket file descriptors * Add gettimeofday and directory handling * Hacky pipe implementation Pretend that sockets are pipes and pipes are sockets * Better support for MSR writing * Default to success on directory operations * Codeclimate * More verbose unimplemented syscall printing * Fix line overrun before CC calls me out * Add ftruncate support * Add link, unlink, and nanosleep * Add getdents * Add tests for mkdir and time functions * Fix codeclimate and force rebuild * Add pre and post hooks for syscalls * Fix lingering single quotes * Handle dumb invocations * Type-o * Make emulator follow logging behavior * CC * Fix pipe tests * Fix shadowed name * Add test for ftruncate * Add link tests * Add chmod test * Rewrite docstrings Best not to risk licensing issues * Replace with simple returns * Strip out unique implementations Should bring the line count down a bit * Check that unimplemented syscalls exhibit the proper behavior * Fix missing keyword 'solver' * Pass initial states to will_run callback * Restore debug printouts after run * Fix existing `init` calls * Restore old exception behavior * Move save_run_data to manticore native * CC * Refactor finalization call * Fix save_run_data I think it makes sense now * Adjust expected output line counts * CC [ci skip] * Rename terminate state on exception to kill state There's gotta be a better pun about 'overthrowing the state' in there somewhere * Move time started to manticore_native 16 May 2019, 19:45:32 UTC
a527e81 ManticoreBase refactor (#1385) * [WIP][WIP][WIP] Moving executor functionality to ManticoreBase and refactor concurrency shared data * Workspace locks * Concurrency flavor configurable from commandline * Asserts and refactorrrrrrrs * Remove unused callback * Some CC * Some CC * Some CC * Fix solver vs Z3Solver * Make solver a singleton based on tid/pid. REfactor m._save. Fix some tests * typo and evm bugfix * Fix some tests referecing global solver * Fix concolic tests and more global solver refs * Fix tests * CC fixes * Fix tests. Fix testcase id generation * Move profiling to a plugin and fix tests * Add solver intance ref to mem test * Fix mem workspace tests * Fix output checking tests * Fix z3solver ref * Relax verbosity/log tests * Moved Workers to its own file * Relax output tests * Relax output tests * Fix profiling test * merge * Fix more tests * Default multiprocessing * Try to clean mcore __del__ * Change Worker life span * Fix Single mode * CC * Merge branch 'master' into dev-executor-refactor * revert verbosity travis * CC and solver ref fix * Relax ouput checking tests and some bugfixes * running -> ready * Fixing teeests * add weak cache to _load * del debug prints * Adding config.py support for Enums * Try/Remove generate_testcase event as it never occurs online. Fix tests * Fix CC * Kill the cache when start/stop run. Remove debugprints. clean tests * Fix travis test _other_ * Fix native tests and timeout * Fix state.must_be_true * fix CC * Merge and fix more tests * Changing fstat tets...: ~' * LLLLLLLLinux tests * Skip unicorn concrete test for now * Try fix CodeClimate * Try fix CodeClimate * Update evm examples to newest solidity * Complete transformation of consts.mprocessing to enum * Add blank line (codeclimate) * Using the enum instead of the string * Merge branch 'dev-executor-refactor' of github.com:trailofbits/manticore into dev-executor-refactor * Using the enum instead of the string * Merge branch 'master' into dev-executor-refactor * Fix solver instance reference 09 May 2019, 23:35:13 UTC
df072fb Add missing checks for ARM boundaries (#1429) Previously only supported ARM64 and x86. Now adds support for ARMv7 06 May 2019, 18:19:44 UTC
5f37fb6 Merge pull request #1424 from trailofbits/merge-aarch64 Final AArch64 Merge (unsquashed) 30 April 2019, 22:26:33 UTC
a6b2f51 aarch64: add instruction tests: T-U (#1423) * aarch64: add instruction tests: A-B * aarch64: add instruction tests: C-L * aarch64: add instruction tests: M-S * aarch64: add instruction tests: T-U * fixup: do not use relative imports Otherwise, 'scripts/travis_test.sh' fails to work. * fixup: remove x86-specific code from '_reg_name' * review: rename the file * review: avoid wildcard imports * Revert "fixup: remove x86-specific code from '_reg_name'" * fixup: support ARM64 in '_reg_name' 30 April 2019, 20:08:36 UTC
50340c9 aarch64: add instruction tests: M-S (#1422) * aarch64: add instruction tests: A-B * aarch64: add instruction tests: C-L * aarch64: add instruction tests: M-S * fixup: do not use relative imports Otherwise, 'scripts/travis_test.sh' fails to work. * fixup: remove x86-specific code from '_reg_name' * review: rename the file * review: avoid wildcard imports * Revert "fixup: remove x86-specific code from '_reg_name'" * fixup: support ARM64 in '_reg_name' 30 April 2019, 20:07:29 UTC
4c406b1 aarch64: add instruction tests: C-L (#1421) * aarch64: add instruction tests: A-B * aarch64: add instruction tests: C-L * fixup: do not use relative imports Otherwise, 'scripts/travis_test.sh' fails to work. * fixup: remove x86-specific code from '_reg_name' * review: rename the file * review: avoid wildcard imports * Revert "fixup: remove x86-specific code from '_reg_name'" * fixup: support ARM64 in '_reg_name' 30 April 2019, 20:05:56 UTC
dd6e565 aarch64: add instruction tests: A-B (#1420) * aarch64: add everything except instructions Based on disconnect3d/aarch64/skeleton. * aarch64: add instructions * aarch64: add instruction tests: A-B * fixup: do not use relative imports Otherwise, 'scripts/travis_test.sh' fails to work. * fixup: remove x86-specific code from '_reg_name' * review: rename the file * review: avoid wildcard imports * Revert "fixup: remove x86-specific code from '_reg_name'" * fixup: support ARM64 in '_reg_name' 30 April 2019, 20:03:04 UTC
b590c41 Fix conflicts 30 April 2019, 20:02:31 UTC
ff4d419 merge into merge-aarch64 30 April 2019, 20:01:14 UTC
04a1cd3 aarch64: add everything except instructions (#1418) * aarch64: add everything except instructions Based on disconnect3d/aarch64/skeleton. * fixup: do not use relative imports Otherwise, 'scripts/travis_test.sh' fails to work. * fixup: remove x86-specific code from '_reg_name' * review: rename the file * review: avoid wildcard imports * Revert "fixup: remove x86-specific code from '_reg_name'" * fixup: support ARM64 in '_reg_name' 30 April 2019, 19:57:41 UTC
a01593f fixup: support ARM64 in '_reg_name' 30 April 2019, 17:21:41 UTC
f6db31c Revert "fixup: remove x86-specific code from '_reg_name'" 30 April 2019, 17:21:41 UTC
e33f165 review: avoid wildcard imports 30 April 2019, 13:11:32 UTC
8769389 review: rename the file 30 April 2019, 13:11:32 UTC
b5dcbb7 fixup: remove x86-specific code from '_reg_name' 30 April 2019, 11:52:10 UTC
ab70743 fixup: do not use relative imports Otherwise, 'scripts/travis_test.sh' fails to work. 29 April 2019, 12:57:37 UTC
54c5a15 Generates a more sensible symbolic default for constructor arguments (#1414) * Fix #1412 * Add basic test * CC 29 April 2019, 12:37:24 UTC
229d2d6 aarch64: add instructions 29 April 2019, 10:46:14 UTC
0002b20 aarch64: add everything except instructions Based on disconnect3d/aarch64/skeleton. 29 April 2019, 10:45:32 UTC
2a1c341 Switches the Travis-CI badge from .org to .com (#1416) 25 April 2019, 22:58:17 UTC
4d5d5b8 Performance optimization : use set instead of list (#1415) Better average performance for `ìn` operation : O(1) instead of O(n) 25 April 2019, 22:57:57 UTC
22cdf85 Fix DECREE Magic Pages (#1413) Travis is almost done and the relevant parts have passed 24 April 2019, 00:42:02 UTC
aadd7a0 Migrate sandshrew concolic executor as Manticore script (#1396) * Add consolidated sandshrew concolic testing script * Migrate repository content into one-file script * Reorganize for code style consistency * Optimizations to sandshrew script * Add sandshrew example test cases * Move test cases over from standalone repo * Add Makefile * Add sandshrew documentation files 22 April 2019, 21:15:19 UTC
9c9b619 Fix Travis Coverage (#1409) * Fix JOB_COUNT env var That took way longer than it should have to figure out * Fix incorrect comment Whoops... 19 April 2019, 21:18:14 UTC
3fc2faa Fix CodeClimate Master (#1408) Fixes a few CC bugs that made it into master, and marks the "too many functions" issues that we always ignore as wontfix. Travis is green so I'm just going to merge this. 19 April 2019, 18:37:08 UTC
efdac08 Remove all broad excepts (#1405) 18 April 2019, 17:59:28 UTC
220b949 PEP-257: Change docstrings using single quotes to double quotes (#1401) * PEP-257: change docustrings using single quotes to double quotes Signed-off-by: binaryflesh <logan.campos123@gmail.com> * fix pseudocode in docstring Signed-off-by: binaryflesh <logan.campos123@gmail.com> 17 April 2019, 09:53:01 UTC
d0a5ec2 Add bash syntax highlighting to shell examples in README (#1402) Signed-off-by: binaryflesh <logan.campos123@gmail.com> 17 April 2019, 09:49:43 UTC
67c1d66 Update README.md (#1397) 04 April 2019, 00:27:08 UTC
913c258 Concretize `pc` if possible to resolve issue #1394 (#1395) 28 March 2019, 20:23:50 UTC
a1f8fb3 Fix logic for solc relative path (#1393) This allows solc-select (which runs in docker) to correctly access the relative path of a sol file. 26 March 2019, 15:14:25 UTC
f4582b3 Only publish events when there is one subscriber (#1388) * Only publish events when there is one subscriber Performance optimization * Move sub_events to init. * Revert "Move sub_events to init." This reverts commit 0859a630203edaa7b7d2bd63fdb676a6bdb5f84a. * Update event.py 26 March 2019, 15:14:02 UTC
d3e4c0f Fix #1391 (#1392) 25 March 2019, 13:39:23 UTC
d287024 Release 0.2.5 (#1390) Travis passed in a previous build so we won't bother re-running it for changes to documentation. 18 March 2019, 22:09:42 UTC
3a460d5 Load truffle json artifacts (#1376) * WIP load truffle json artifacts * No 'signature' * Better truffle -artifact support * CC * Add basic test for truffle artifacs and update solidity linking * Missing data file for truffle test * CC * Add full fledged example for truffle json * Clean argument dosc for truffle * Update manticore/ethereum/manticore.py Co-Authored-By: feliam <felipe.andres.manzano@gmail.com> * Update manticore/ethereum/manticore.py Necessary for 9a93cc5 * Add check for byte type and fix f string * New lib linking bugfix * Ability to pass constructor arguments to a Truffle JSON contract (#1376) * Added sampling capabilities to RETURN.size * Update manticore/ethereum/manticore.py Co-Authored-By: feliam <felipe.andres.manzano@gmail.com> * Update manticore/ethereum/manticore.py Co-Authored-By: feliam <felipe.andres.manzano@gmail.com> 18 March 2019, 18:50:56 UTC
4d0cfd4 Better doc for solc fails (#1386) * Better solc invocation failing doc * Better solc invocation failing doc * Update manticore/ethereum/manticore.py Co-Authored-By: feliam <felipe.andres.manzano@gmail.com> 14 March 2019, 23:49:29 UTC
9097916 More informative errors for unimplemented EVM features (#1387) * Report the transaction type that is not yet supported * Added a more informative error about the `STATICCALL` opcode (#1168) * Reminder for when #1168 is addressed 14 March 2019, 11:56:23 UTC
10707f6 Fix #1380 - add parsetab to repo (#1383) * Fix #1380 - add parsetab to repo * Ignore parsetab in codeclimate We don't need to check autogenerated files since they shouldn't be modified by humans anyway * Yaml paths are top-level 06 March 2019, 19:48:43 UTC
71b8d2b examples/linux: Refactor, fix crackme.py (#1378) * examples/linux: Refactor crackme.py * Dockerfile: Re-add LANG environment variable See: #1300 See: #1137 27 February 2019, 00:47:55 UTC
bc77660 Unicorn Preload (#1356) Modifies the Unicorn emulator module to allow it to be used for "preloading" large binaries. It uses Unicorn to execute x64 instructions in bulk while Manticore handles IO and syscalls. State changes are aggressively written from Manticore back to Unicorn, and lazily written from Unicorn to Manticore before a syscall. Can be used to concretely execute entire binaries, but should not be used once symbolic data has been introduced. The following script demonstrates this. The user can register a plugin at startup that tells Manticore to use Unicorn to quickly execute the initialization instructions leading up to the start of `main`. The binary in question is [`multiple-styles`](https://gist.github.com/ehennenfent/a5ad9746615d1490c618a88b98769c10) from an old example. ```python from manticore.native import Manticore from manticore.core.plugin import Plugin address_of_main = 0x4009ae class concretePlugin(Plugin): def will_start_run_callback(self, state, *_args): state.cpu.emulate_until(address_of_main) m = Manticore("multiple-styles", concrete_start='coldlikeminisoda') m.register_plugin(concretePlugin()) m.run() ``` Once `main` is reached, Manticore takes over and continues execution as normal. In the case of this example, the full solution is `coldlikeminisodas`, so Manticore generates two different test cases for the remaining byte. The performance improvement for this example is only marginal because the bulk of the time is taken up by the solver, and relatively little initialization is required before executing `main`. However, more complex binaries can see very significant speedups. 26 February 2019, 19:28:22 UTC
cdae2bc Inline EVM's get_possible_solutions (#1372) This was an internal function used just once and it was recreated each time the _consume was executed which can be slow. 14 February 2019, 15:22:23 UTC
c113a13 Fix ethereum Manticore API issue, where creating a new account with the code field failed (#1371) * Fix Manticore API issue * - Added test for Manticore API issue - also bugfix for assertion 12 February 2019, 20:37:10 UTC
627abaf Rename tests: add solidity_ prefix (#1311) 12 February 2019, 19:25:00 UTC
2a48b66 Ensure native deps (better error message) (#1367) The error message for first time users can be a bit confusing ("NameError: name 'native_main' is not defined"), if native deps isn't installed and the user is running the program against a binary file. ``` $ pip3 install manticore [...] $ manticore ./app Traceback (most recent call last): File "/home/user/.local/bin/manticore", line 11, in <module> sys.exit(main()) File "/home/user/.local/lib/python3.6/site-packages/manticore/__main__.py", line 43, in main native_main(args, logger) NameError: name 'native_main' is not defined ``` After this patch, the code will instead return "ImportError: Missing some packages for native binary analysis. Please install them with pip install manticore[native]." 07 February 2019, 14:24:19 UTC
214f9e8 Make sys_lseek return offset location (#1355) Per the [man page](http://man7.org/linux/man-pages/man2/lseek.2.html#RETURN_VALUE), `lseek` should return the offset location as measured in bytes from the beginning of the file. 21 January 2019, 21:02:02 UTC
efeb5b5 Fix a typo in the documentation (#1360) 21 January 2019, 16:43:34 UTC
18265f3 Refactor tests structure (#1352) * Refactor tests structure * Travis: run whole test suite * Fix travis * Fix travis * Fix import * travis_test.sh: split tests/ directories into jobs * Fix travis_test.sh * Fix VMTests proper setup/teardown * Fix tests 17 January 2019, 10:10:02 UTC
26dc0d2 Dev single gas calc (#1353) * Try fix concolic * Let gas calc be done in a single place * Fix refactoring 17 January 2019, 01:32:40 UTC
1da68dc Symbolic memory model bugfixes (#1350) * Apply returned operands from memory read callbacks * Limit memory callbacks in favor of pluggable memory model * Support len() in bytes for bitvectors * Rolled back changes to read_int * Fix misdirected imports in logging module * Add docstring * Update expression.py 16 January 2019, 16:04:39 UTC
0627a5a Refactor not-existing SValue into BitVecVariable 15 January 2019, 19:42:30 UTC
81d42d0 Config with context (#1345) * config: try instead of asking * config.Group: `with statement` usage This changes introduces possibility to make temporary changes to config groups. * Review changes 15 January 2019, 15:53:48 UTC
3a01591 Update Capstone to 4.0.1 (#1312) * Update Capstone to 4.0 * Update Capstone to 4.0.1 As it is there! https://pypi.org/project/capstone/#history It has a minor bug with getting the extra version number but it doesn't hit us at all (see https://github.com/aquynh/capstone/issues/1315#issuecomment-454386418). 15 January 2019, 14:38:11 UTC
848fb7e evm: fix _check_jumpdest when run with detectors (#1347) * evm: fix _check_jumpdest when run with detectors When ManticoreEVM is run with detectors, the self.pc in EVM is a Constant (as we need to taint it). Because of that, the check: ``` if pc not in self._valid_jumpdests: raise InvalidOpcode() ``` failed - i.e. we raised an InvalidOpcode because we checked if the list contains the `Constant` object and not its value. This commit fixes this issue. * Fix the test 15 January 2019, 12:27:11 UTC
6804661 Move tx default gas value to config (#1346) 14 January 2019, 21:37:20 UTC
c705e85 Refactor config (#1335) * Optimize config.py imports * Use dict literal instead of dict() * config.py: process_config_values: add type adnotations * Annotation and docstring 14 January 2019, 17:30:50 UTC
cb078ff Fix writing pc address finding (#1344) * Print as hex values * Fix wrong attribute * Fix test 14 January 2019, 17:28:08 UTC
35be876 Fix unexisting attribute (#1341) 14 January 2019, 13:37:11 UTC
ea01069 Add info about ulimit 14 January 2019, 12:05:22 UTC
e1c519a Manticore 0.2.4 (#1338) * Manticore 0.2.4 * Move terminated state ressurecting bug to ethereum in changelog * Changelog improvements * Linkify * Add missing PR id 10 January 2019, 22:37:28 UTC
97cfde0 Fix tests that used --timeout 10 January 2019, 17:21:12 UTC
324504e Revert back the test file name 10 January 2019, 16:40:43 UTC
a812635 Fix missing consts in CLI args (#1337) * Fix constants missing from manticore --help * Use has_native for native constants * Remove duplicated args from consts: stdin_size and timeout * Move timeout back to shutdown_timeout * Update manticore/core/manticore.py 10 January 2019, 15:47:22 UTC
6f7f200 Fix verbose_trace test Fixes test regression introduced in 0e90ca3: the gas default value has changed from 90k to 3kk. 10 January 2019, 02:13:28 UTC
8b9632e Refactor solver (#1334) * Refactor docstrings and add type adnotations * Rename _check to _is_sat and return bool So we won't have to do `== 'sat'` comparison in tons of places. * Compile regular expressions just once! * Refactor imports * Refactor docstrings and recv method * Fix imports in ethereum.detectors 10 January 2019, 02:09:05 UTC
0e90ca3 Evm: change default gas to 3000000 when creating contract (#1332) 09 January 2019, 23:31:47 UTC
0814222 Explicitly require Python>=3.6 when using CLI (#1331) * Require Python>=3.6 We have this in setup.py python_requires but it doesn't work with old pip versions and we get reports that Manticore throws a SyntaxError (on a f-string literal :/). * Move check to __init__ 09 January 2019, 22:19:35 UTC
be81fb5 Speed up the EMVWorld.__str__ a bit ...so we can debug a bit faster. * moved `FILTER` outside of `hexdump` so it is created once, also renamed to `_FILTER` * moved `hexdump` func outside of `__str__` (so it doesn't recreate it each time) * changed list comprehensions to generator expressions (so we don't create unnecessary lists) This still isn't perfect and there are rooms for improvements. It's probably good to drop from using lists at all and use some efficient string concatenation method (see also https://waymoot.org/home/python_string/). 09 January 2019, 13:42:19 UTC
e83fae8 Add VerboseTraceStdout plugin (#1330) 09 January 2019, 13:21:53 UTC
28f6a46 Minor evm refactor (#1329) 09 January 2019, 11:37:31 UTC
d6aa04d Hotfix regressions (#1328) * Fix ConcretizeStack -> ConcretizeArgument rename * Fix: remove redundant calc in CALLDATACOPY_gas Note that it could crash the execution when the argument was symbolic (tested on contract from issue 1295) * Fix: not declared _value * Fix ConcretizeFee: set concretize value 08 January 2019, 20:28:24 UTC
c9eb624 Make gas calculation faithfulness configurable (#1279) * split extra gas calculation to it's own method * Fix MSTORE8 * Fix some legacy tests * Remove fork selection * Fix legacy tests. Iff Stack Underflow then gas is consumed in full * memfee is zero when size is zero * CC * 1st version of configurable gas faitfulness * Try fix concolic * Fix typo * Fix logic bug * If everything is concrete lets just check at every instruction * Fix bad import at test * CC * CC * CC * Update manticore/platforms/evm.py Co-Authored-By: feliam <felipe.andres.manzano@gmail.com> * Update manticore/platforms/evm.py Co-Authored-By: feliam <felipe.andres.manzano@gmail.com> * Update manticore/platforms/evm.py Co-Authored-By: feliam <felipe.andres.manzano@gmail.com> * Update manticore/platforms/evm.py Co-Authored-By: feliam <felipe.andres.manzano@gmail.com> * Update manticore/platforms/evm.py Co-Authored-By: feliam <felipe.andres.manzano@gmail.com> * Update manticore/platforms/evm.py Co-Authored-By: feliam <felipe.andres.manzano@gmail.com> * Update manticore/platforms/evm.py Co-Authored-By: feliam <felipe.andres.manzano@gmail.com> * Fix tab * Documment check_jmpdest * Remove unnecesary local var * Fix get_memfee arguments * Change docstrings comments * Fix concrete gas consumption for accesses with size 0 (Frontier). Fix auto tests maker. * Add comment of deleted constant * CC * fix merged test and add gas to vm.__str__ * Update evm.__str__ related tests * Try to fix/update output checking test * docstring OCD * Update manticore/platforms/evm.py Co-Authored-By: feliam <felipe.andres.manzano@gmail.com> * docstring SOCD and fix oog config var * Fix oog config variable * Fix CC * Typo: ammmmount 07 January 2019, 23:44:36 UTC
e83a608 Fix terminated states resurrection (#1326) * Add testcase for 1325 * Fixes 1325 07 January 2019, 19:37:56 UTC
f349adb Make is_human a property (#1323) * Make is_human a property * Update manticore/platforms/evm.py * Better docstring 07 January 2019, 16:52:17 UTC
b7f9a46 added warning and error to sys_arch_prctl (#1319) * added warning and error to sys_arch_prctl * Changed error message and list to set literals * Removed trailing whitespace 06 January 2019, 21:49:36 UTC
64c75fb Fix evm's make_symbolic_address (#1318) * Fix evm's make_symbolic_address The code that created a constrain for created symbolic address was unreachable. * Add testcase for make_symbolic_address 03 January 2019, 11:25:31 UTC
23199f2 Minor state/platform refactor (#1320) The `StateBase` class had two properties that are only used in native engines: `cpu` and `mem`. Those two used `self._platform.current` and that `current` is a property in linux and decree platforms that returns current process platfrom (?). 02 January 2019, 15:44:06 UTC
b7626fc Add symbol resolution feature for binary analysis (#1302) * Remove obsolete symbol resolver helper * Add resolve helper for function sym resolving * Add test case for symbol resolution * Add binary path property, fix decree, fix m.resolve Refactor out resolver helper Decree missing self.program attribute Fix use of exceptions in m.resolve Make m.resolve raise exception instead of returning None Add another test case 01 January 2019, 15:46:59 UTC
4cb7e3b Refactor events and test_events (#1314) 20 December 2018, 23:21:05 UTC
c0b6ce1 Speed up ArmV7Operand.type assertions (#1313) * Speed up ArmV7Operand.type assertions So .type will now just return the value instead of building a mapping and returning a result. * Update manticore/native/cpu/arm.py * Revert debug changes 20 December 2018, 22:49:49 UTC
94991c8 Fix eth private func calls (#1306) * Add test for calling contract._func * Fix contract._func calls * EVMContract: make attributes protected * Move EVMContract __hashes={} to __init__ * Fix attribute error * Review fix 18 December 2018, 00:49:36 UTC
e3f8801 __main__.py: fetch manticore version from installed module (#1310) 18 December 2018, 00:40:13 UTC
6b80359 Migrate hook callback methods to native.Manticore (#1309) * Migrate hook callback methods to native.Manticore * Fix indentations 17 December 2018, 22:44:47 UTC
f1fa154 test_manticore: remove redundant imports (#1308) 17 December 2018, 19:24:45 UTC
b399080 Remove Py3 redundant object inheritance (#1307) 17 December 2018, 19:15:06 UTC
580b358 Refactor generate_testcase events and fix eth verbose trace plugin (#1305) * WIP * Add test * Add missing test data file * Fix missing testcase msg and assert it in test * Remove Executor.generate_testcase - just publish event * Remove redundant import * Add ManticoreBase._last_run_stats * Review fixes * Remove redundant assertions in test_basic_arm * Elapsed time calc fix 17 December 2018, 14:04:00 UTC
463a394 Fix logging regressions (#1304) * Fix logging Creates custom loggers so that we no longer need to call init_logging. Verbosity is automatically set upon logger creation, and updated in the event of manticore_verbosity being set after the fact. * Strip the stateid from the loggers It literally only ever gets set to None. * Fix deleted line That's what source control is for * Appease CodeClimate Trouble me no more, damnable machine 14 December 2018, 18:05:23 UTC
54bf795 Display registered eth detectors (#1301) * Display registered eth detectors ``` root@52356aa06255:/# manticore test.sol 2018-12-12 13:53:58,615: [1496] m.c.manticore:INFO: Verbosity set to 1. 2018-12-12 13:53:58,798: [1496] m.main:INFO: Registered plugins/detectors: DetectInvalid, DetectExternalCallAndLeak, DetectEnvInstruction, DetectReentrancySimple, DetectUninitializedMemory, DetectDelegatecall, DetectUninitializedStorage, DetectReentrancyAdvanced, DetectUnusedRetVal, DetectSuicidal, DetectIntegerOverflow 2018-12-12 13:53:58,799: [1496] m.main:INFO: Beginning analysis 2018-12-12 13:53:58,800: [1496] m.e.manticore:INFO: Starting symbolic create contract Mnemonic return Mnemonic return hooman 2018-12-12 13:53:58,933: [1496] m.e.manticore:INFO: Starting symbolic transaction: 0 2018-12-12 13:53:59,072: [1496] m.e.manticore:INFO: 0 alive states, 2 terminated states 2018-12-12 13:53:59,117: [1496] m.e.manticore:INFO: Starting symbolic transaction: 1 2018-12-12 13:53:59,133: [1558] m.e.manticore:INFO: Generated testcase No. 0 - REVERT 2018-12-12 13:53:59,462: [1558] m.e.manticore:INFO: Generated testcase No. 1 - RETURN 2018-12-12 13:53:59,590: [1496] m.c.manticore:INFO: Results in /mcore_f7hsxcpn 2018-12-12 13:53:59,591: [1496] m.c.manticore:INFO: Total time: 0.6525142192840576 ``` * Update manticore/ethereum/cli.py * Update tests/test_binaries.py 12 December 2018, 21:07:09 UTC
back to top