* 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
* 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
* 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
* 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
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
* Install instructions updates
* Update README.md
* also need pip
* need to update, plus compact a few things
* add -y
* grammar?
* typos
* Add bountysource link
* consistency
* Point users to the examples dir and wiki
I thought these links were cluttering things a bit, and 2 out of 3 of
them aren’t official documentation yet we’re linking to them in the
first line of the README. I updated the wiki to address these directly
in a way I think is more clear.
* link to Z3 releases
* oops, don't know where that came from
* ensure people run the latest pip
* be more explicit
* Add an Issue Template
* be more explicit
* no longer appropriate here
* unnecessary
* add note about 16.04
* move issue template to hidden folder
* Spelling
* be explicit, makes copy/paste easier
* Add example taint usage
- use new_symbolic_value API instead, because it's making an int symbolic
- add every instruction hook that checks for tainted data in operands
* update readme with taint example
* Fix sys_fstat
i'm pretty sure it was totally wrong before, in terms of how it laid
out the struct
I'm based this on using arm-linux-gnueabi-gcc -E
which shows me this struct:
struct stat
{
__dev_t st_dev;
unsigned short int __pad1;
__ino_t st_ino;
__mode_t st_mode;
__nlink_t st_nlink;
__uid_t st_uid;
__gid_t st_gid;
__dev_t st_rdev;
unsigned short int __pad2;
__off_t st_size;
__blksize_t st_blksize;
__blkcnt_t st_blocks;
# 72 "/usr/arm-linux-gnueabi/include/bits/stat.h" 3
struct timespec st_atim;
struct timespec st_mtim;
struct timespec st_ctim;
# 87 "/usr/arm-linux-gnueabi/include/bits/stat.h" 3
unsigned long int __glibc_reserved4;
unsigned long int __glibc_reserved5;
};
* Add stat32
* Minor