Merge branch 'master' of github.com:trailofbits/deepstate
This commit is contained in:
20
README.md
20
README.md
@@ -35,7 +35,7 @@ DeepState currently targets Linux, with macOS support in progress.
|
||||
Build:
|
||||
|
||||
- CMake
|
||||
- GCC with multilib support
|
||||
- GCC and G++ with multilib support
|
||||
- Python 2.7
|
||||
- Setuptools
|
||||
|
||||
@@ -47,11 +47,11 @@ Runtime:
|
||||
## Building on Ubuntu 16.04 (Xenial)
|
||||
|
||||
```shell
|
||||
$ sudo apt update && sudo apt-get install build-essential gcc-multilib cmake python python-setuptools libffi-dev
|
||||
$ git clone https://github.com/trailofbits/deepstate deepstate
|
||||
$ mkdir deepstate/build && cd deepstate/build
|
||||
$ cmake ../
|
||||
$ make
|
||||
sudo apt update && sudo apt-get install build-essential gcc-multilib g++-multilib cmake python python-setuptools libffi-dev z3
|
||||
git clone https://github.com/trailofbits/deepstate deepstate
|
||||
mkdir deepstate/build && cd deepstate/build
|
||||
cmake ../
|
||||
make
|
||||
```
|
||||
|
||||
## Installing
|
||||
@@ -59,9 +59,9 @@ $ make
|
||||
Assuming the DeepState build resides in `$DEEPSTATE`, run the following commands to install the DeepState python package:
|
||||
|
||||
```shell
|
||||
$ virtualenv venv
|
||||
$ . venv/bin/activate
|
||||
$ python $DEEPSTATE/build/setup.py install
|
||||
virtualenv venv
|
||||
. venv/bin/activate
|
||||
python $DEEPSTATE/build/setup.py install
|
||||
```
|
||||
|
||||
The `virtualenv`-enabled `$PATH` should now include two executables: `deepstate` and `deepstate-angr`. These are _executors_, which are used to run DeepState test binaries with specific backends (automatically installed as Python dependencies). The `deepstate` executor uses the Manticore backend while `deepstate-angr` uses angr. They share a common interface where you may specify a number of workers and an output directory for saving backend-generated test cases.
|
||||
@@ -69,7 +69,7 @@ The `virtualenv`-enabled `$PATH` should now include two executables: `deepstate`
|
||||
You can check your build using the test binaries that were (by default) built and emitted to `deepstate/build/examples`. For example, to use angr to symbolically execute the `IntegerOverflow` test harness with 4 workers, saving generated test cases in a directory called `out`, you would invoke:
|
||||
|
||||
```shell
|
||||
$ deepstate-angr --num_workers 4 --output_test_dir out $DEEPSTATE/build/examples/IntegerOverflow
|
||||
deepstate-angr --num_workers 4 --output_test_dir out $DEEPSTATE/build/examples/IntegerOverflow
|
||||
```
|
||||
|
||||
The resulting `out` directory should look something like:
|
||||
|
||||
@@ -438,6 +438,7 @@ class DeepState(object):
|
||||
return
|
||||
|
||||
expr_ea = self.concretize(expr_ea, constrain=True)
|
||||
file_ea = self.concretize(file_ea, constrain=True)
|
||||
constraint = arg != 0
|
||||
if not self.add_constraint(constraint):
|
||||
expr, _ = self.read_c_string(expr_ea, concretize=False)
|
||||
|
||||
Reference in New Issue
Block a user