Yan
452c92a340
Update fstat/fstat64, add few syscall wrappers ( #261 )
...
* mmap; newstat; exit; sigprocmask syscall wrappers
* Fix fstat and fstat64 implementations
* use st_blocks/st_blksize
* Experiment with fstat structs
* Make uname more verbose
* Fix uname implementation
* Fix newfstat
* Fix fstat64
* Fix fstat
* Refactor uname
2017-05-24 15:15:50 -04:00
Yan
3c977719f0
Linux platform refactoring ( #264 )
...
* Clean up model syscall invocation
* Move read_string to Cpu
* move push/pop helpers to Cpu
* Reorg Linux initialization
* Update linux test
* fstat64 test harness
* assert read_string only considers concrete bytes
* Ensure that correct aliases exist during ctor
* Improve alias check
2017-05-23 15:30:58 -04:00
feliam
475f786f21
Fix x86.PUNPCKL emulation ( #259 )
...
* Fix x86.PUNPCKL emulation
* trace check wip
* PUNPCKH/L and Readlink /proc
* PUNPCK fixes
* remove debug traceback
* rename arguments insteag of commenting them
* fix comment
2017-05-23 15:21:48 -03:00
JP Smith
ea4f8edfd4
remove default nsolves parameter from solve_n ( #266 )
2017-05-22 14:14:27 -05:00
JP Smith
0029c8fdc5
refactor the verbosity interface to look cleaner ( #265 )
2017-05-22 14:14:03 -05:00
Sascha Schirra
b381c4e04d
VORPD and VORPS instructions added ( #258 )
2017-05-19 14:49:22 -05:00
Mark Mossberg
8840e31fc2
Add strlen model ( #260 )
...
* add models
* wip strcmp tests
* t
* Add some tests
* Better asserts
* More pythonic
* Add effectivene null test
* init strlen
* pythonic range
* clean
* docstring
* tmp
* stuff
* stuff
* Complete test
* Add another test
* Doc
* clean
* Add symbolic arg check
* Fix tests
* Make arch generic
* Clean comment
* Add basic unconstrained test
2017-05-18 16:59:44 -04:00
JP Smith
10f7531cae
Use newer, less broken capstone version ( #262 )
...
* use newer, less broken capstone version
* fix documentation
2017-05-18 11:19:14 -05:00
Mark Mossberg
92eaf76236
Add strcmp model ( #251 )
...
* add models
* wip strcmp tests
* t
* Add some tests
* Better asserts
* More pythonic
* Add effectivene null test
* Handle symbolic pointer arguments
2017-05-17 11:44:10 -04:00
Mark Mossberg
e5aca50e1f
Don't use string=True for symbolic arg/env ( #256 )
...
This very strictly constrains the arg/env to the length of the symbolic
string which is too strict for many use cases.
For example:
manticore ./bin +++++
that symbolic string would only be allowed to be strings of length 5,
and no shorter.
2017-05-15 17:38:22 -04:00
Yan
42c28e0256
Handle missing syscalls with correct exception ( #255 )
2017-05-15 16:07:01 -04:00
Yan
2202b0a27d
Generate NRs for ARM-specific syscalls ( #254 )
2017-05-15 15:11:54 -04:00
Mark Mossberg
42955387a5
Don't make concrete bytes symbolic, only wildcard bytes ( #252 )
2017-05-12 17:31:59 -04:00
Mark Mossberg
7700112d9e
Rm unused Slinux ctor params ( #250 )
...
* Rm unused Slinux ctor params
Fixes #109
* Add back constraitns
* Make argv and envp default params
* Use ternary
* nit
* Clean test_unicorn
* Correct envp and docstring
2017-05-12 11:35:59 -04:00
Mark Mossberg
1e76998eb7
Add infrastructure for core models ( #244 )
...
* Rename libc.py to models.py
* Clean old unused libc.py code
* Make models top level importable
* Add State level model invocation function
So user is not required to pass in state at to a platform level func
* Explicitly mark what is in the public API
Protects against accidentally making something a public API just because
it has a docstring
* clean
* Move models.py to top level
* Rm models
* Fix docstring typo
* Add default param name, move comment
* Update docstring
2017-05-11 13:25:43 -04:00
Yan
a0717aa661
Syscall table rework ( #245 )
...
* Script for generating syscall tables from Linux src (pulled from kernel.org)
* Add generated syscall table
* Update syscall names to match extracted entries
* Move to new syscall dispatcher
* Add machine def to x86 cpus
2017-05-11 12:20:00 -04:00
Mark Mossberg
a10b7bae29
Update parallel processing api ( #246 )
...
* Remove m.workers, add run(procs=), update docs
* Update docs
2017-05-10 19:44:55 -04:00
Mark Mossberg
e4a4916597
Rename os model terminology from "models" to "platforms" ( #243 )
...
* Rename
* rename in manticore.py
* rename in executor.py
* big rename
* big rename
* update changelog
2017-05-09 19:25:32 -04:00
Cory Duplantis
b8991e0c64
Add Google2016 unbreakable challenge to examples repo ( #194 )
...
* Add Google2016 unbreakable challenge to examples repo
* Add Google2016 unbreakable challenge to examples repo
state.add instead of state.constraints.add
* Update constraints API
2017-05-09 18:35:38 -04:00
Yan
3c9653d1d7
Update syscall/funcall implementation ( #213 )
...
* Wrap ABI semantics in its own class hierarchy
* Define a model invocation for syscalls and function calls
* Add unit tests for ABI
* Add a common base class for Platform models
2017-05-09 16:13:08 -04:00
Mark Mossberg
3873c3eb5d
Document m.context API ( #238 )
2017-05-08 15:39:18 -04:00
Mark Mossberg
fca086ea45
Add hack for Unicorn YMM registers ( #239 )
2017-05-08 15:14:37 -04:00
Yan
395a40a646
Add memory tracing ( #203 )
...
* implement memory write tracing
* Comment updates
* Add memory trace tests
* make sure we ignore erroring writes
* Address comments
* remove superfluous return annotation
2017-05-08 14:32:54 -04:00
Mark Mossberg
868bdd80ce
Manticore 0.1.1 ( #234 )
2017-05-05 15:21:52 -04:00
Mark Mossberg
44d365ff4c
Formalize API for constraining a State ( #232 )
...
* Rename state.add to state.constrain
* Update all uses of state.constrain
* Rm check param
* Added changelog
* Update changelog
* Update
* Minor clean
2017-05-05 13:31:43 -04:00
Yan
50fd50ee12
Simplify linux model interfaces ( #233 )
2017-05-05 13:11:59 -04:00
Tim Deeb-Swihart
aafc0e7284
Fix handling of Z3 result in optimize due to nondeterministic output ordering ( #226 ) ( #227 )
2017-05-05 13:43:22 -03:00
Samuel Groß
d9baedeeac
sys_sigprocmask: the second method parameter has to be the cpu instance ( #229 )
2017-05-05 13:33:42 -03:00
Yan
64d1ed51f2
Decode instruction early ( #205 )
...
* Move PC verification to decode_instruction
* Decode instruction in executor
* Fix unicorn tests
* remove decoded_pc
* use issymbolic()
2017-05-04 17:36:39 -04:00
JP Smith
93f9d77f40
Switch to ssh-style verbosity CLI flags ( #222 )
...
* switch to ssh-style verbosity CLI flags
* add register logging to level 4
2017-05-04 14:40:22 -05:00
Tim Deeb-Swihart
538dfea8fe
Fix incorrect syscall arg regs for X86 ( #224 ) ( #228 )
...
i386 and amd64 had their register sets reversed. This fixes that.
2017-05-03 14:05:03 -04:00
Samuel Groß
af2676402c
Implemented sys_readv system call ( #217 )
...
* Implemented sys_readv system call
* sys_readv and sys_writev are now independent of the system bitness
2017-05-02 17:33:29 -04:00
feliam
b19a158b6f
Clean and document some example/linux ( #176 )
...
* Clean arguments.c
* Increase query timeout from 30 to 120 seconds
* Example documentation updated
* Add ibranch comments
* crackme.py, ibranch, sindex and typos
* indexhell
* visitad typo
* typo
* strncmp example
* Typos
2017-05-02 17:04:07 -04:00
Manas George
f4e5bcf53e
refactored will_execute_pc hooks ( #214 )
...
* Refactored will_execute_pc hooks
* Fixed typos
* Figured out why the simple_parse test was failing
* Figured out why the simple_parse test was failing
* Figured out why the simple_parse test was failing
* Figured out why the simple_parse test was failing
Cleanup
* Cleanup
* removed TODO from executor.py
* refactored line in forking handling in executor.py
* removed extraneous space in manticore.py
* removed --exe flag from nosetests command
2017-05-02 14:55:02 -04:00
Simon Bourne
0061ee5c48
CPUID now reports that extended features are unsupported (as unicorn doesn't support them). ( #211 )
2017-05-02 09:49:49 -04:00
Feist Josselin
0583162133
Fix wrong variable name in SymbolicFile ( #220 )
2017-05-01 21:07:45 -04:00
Samuel Groß
9e87d1dfa6
Added sys_ioctl to 64-bit syscall table ( #218 )
2017-05-01 20:54:27 -04:00
Samuel Groß
aabf5777ee
Use correct value for AT_PHENT ( #216 )
2017-05-01 19:03:52 -04:00
Samuel Groß
94e6e76919
Fixed wrong syscall number for sys_faccessat ( #215 )
2017-05-01 18:23:00 -04:00
JP Smith
f7598e53c0
Only make registers appear on verbosity level 5 ( #198 )
...
* make --verbose output more useful
* refactor and rename rendering functions
* refactor to use join
* make sure str returns a value
2017-04-28 12:17:17 -05:00
Yan
8d6bcadb37
Fix RSB, VLDMIA; Add RSC ( #197 )
...
* Fix RSB; Add RSC
* Fix vldmia semantics
* To trigger build
2017-04-27 16:36:23 -04:00
Dan Guido
7e46db5216
oops
2017-04-27 15:48:28 -04:00
Dan Guido
1836c2d266
no more sudo
2017-04-27 15:37:38 -04:00
Dan Guido
d1b0abba6c
try removing sudo
2017-04-27 15:37:20 -04:00
Dan Guido
788a5de23c
.com -> .org
2017-04-27 15:37:15 -04:00
Mark Mossberg
c78ea5c910
Use lowercase name in setup.py ( #192 )
2017-04-26 15:24:27 -04:00
Mark Mossberg
e4506dc029
Add more fields for pypi ( #191 )
...
* Add more fields for pypi
* Add author
2017-04-26 14:57:24 -04:00
Dan Guido
44dff1745d
Add readthedocs ( #179 )
...
* Add readthedocs badge
* Add rtd intro
* Add API reference link
* change the order
wiki first, because that’s where the majority of the docs live
2017-04-24 17:24:29 -04:00
Mark Mossberg
8b973064d1
Add read the docs mock ( #180 )
...
* Add read the docs mock
* Only mock if 'z3 in first arg to check_output
2017-04-24 17:06:47 -04:00
Mark Mossberg
c2fb359b82
Fix LDR/STR writeback ( #175 )
...
if a ldr used the same reg for dest and writeback offset, we'd
compute writeback wrong because we'd run the insn and then use the new
value in computing writeback
2017-04-24 15:09:15 -04:00