An open API service indexing awesome lists of open source software.

https://github.com/s2e/decree


https://github.com/s2e/decree

Last synced: 10 months ago
JSON representation

Awesome Lists containing this project

README

          

Cyber Grand Challenge
=====================

This repository contains artifacts used by S2E as part of Codejitsu's entry in DARPA's [Cyber Grand
Challenge](https://cybergrandchallenge.com).

Recipes
-------

Recipes tell S2E how to generate input so that the input can exploit the binary
[Type 1 and Type 2 vulnerabilities](https://github.com/CyberGrandChallenge/cgc-release-documentation/blob/master/walk-throughs/understanding-cfe-povs.md).
Recipes are used by S2E's ``Recipes`` plugin.

Recipes are now generated by s2e-env. Please refer to the s2e-env documentation for more details.

Scripts
-------

Various CGC-related scripts.

Samples
-------

The `samples` folder contains various pre-compiled CGC binaries that you can use for testing.

You can build the samples on your host in a docker container as follows:

1. Check that you have a working S2E environment. We assume later that it is
located in ``$S2EDIR``. If you do not have one, initialize it using ``s2e init``.
This will automatically fetch all required sources. Refer to the S2E
documentation for more details.

Note: you may also clone the ``decree`` and ``guest-images`` repositories
separately.

2. Build the ``linux-build-i386cgc`` docker image. This image is created
automatically when building the CGC VM image.
If ``docker images`` does not list ``linux-build-i386cgc``, rebuild
the CGC VM images using ``s2e image_build cgc_debian-9.2.1-i386``.

3. Clone the CGC samples repository. These instructions assume that
it is located in ``$CGCDIR``.

```bash
git clone https://github.com/CyberGrandChallenge/samples.git
```

3. Build the samples

```bash
cd $CGCDIR
docker run -ti --rm -w $(pwd) -v $HOME:$HOME linux-build-i386cgc /run_as.sh $(id -u) $(id -g) \
$S2EDIR/source/s2e/decree/scripts/build-cgc-samples.sh $S2EDIR/decree/samples
```

Note: the command above assumes that ``$CGCDIR`` and ``$S2EDIR`` are subdirectories of your ``$HOME``.
If this is not the case, modify the ``docker run`` command so that it also mounts ``$CGCDIR`` and ``$S2EDIR``
at the same locations in the docker image.