Skip to main content

The Cozy Comparative Symbolic Evaluation Engine

Project description

cozy (Comparative Symbolic Evaluation)

cozy is a symbolic execution framework built around angr to enable comparative evaluation. The goal of comparative evaluation is to determine the precise changes made by software patches, specifically micropatches. cozy is capable of reporting observable changes made by a micropatch, specifically to registers, memory and stdout/stderr. The framework has the ability to dump diff information in both a textual human-readable report and via a browser based rich user interface.

Screenshot

Install

cozy is now available as a Python package on PyPI under the name cozy-re. Install with pip via the following command:

pip install cozy-re

Documentation

The getting started guide and API reference can be found on our Github pages!:

https://draperlaboratory.github.io/cozy/

About

cozy is being developed by Draper Laboratory under the DARPA Assured Micropatching (AMP) program.

Build Instructions

To get started with building cozy, run the following commands in the project root folder to create a virtual environment and install angr:

python3 -m venv venv
source venv/bin/activate
pip3 install angr sphinx sphinx-autoapi networkx claripy portion

Alternatively, if you have nix installed and flakes enabled, run

nix develop .#testing 

To enter a nix development shell with cozy and its dependencies available on $PYTHONPATH.

Testing

To run an example comparison, run one of the example scripts. In the root directory, run the following commands:

source venv/bin/activate
export PYTHONPATH="${PYTHONPATH}:$PWD"
python3 examples/cmp_null_deref.py

Or just python3 examples/cmp_null_deref.py if you're in the nix development shell.

Building Docs

Building the docs requires the use of sphinx and sphinx-autoapi, which you should have previously installed via pip3. To build fresh HTML docs, run the following:

source venv/bin/activate
cd docs
make html

The output documents should be stored in docs/build/html

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cozy_re-1.2.1.tar.gz (13.0 MB view hashes)

Uploaded Source

Built Distribution

cozy_re-1.2.1-py3-none-any.whl (1.3 MB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page