Home

Awesome

SyML: Guiding symbolic execution toward vulnerable states through pattern learning

ubuntu python

<a href="https://seclab.cs.ucsb.edu/files/publications/ruaro21syml.pdf"> <img align="right" width="350" src=".github/images/preview.png"> </a>

This repository contains the code used for our RAID 2021 paper <a href="https://seclab.cs.ucsb.edu/files/publications/ruaro21syml.pdf">SyML: Guiding symbolic execution toward vulnerable states through pattern learning</a>.

Dataset

This repo is a good source for the CGC binaries: https://github.com/zardus/cgc-bins

A list of (benign and crashing) inputs for the CGC binaries is available here: https://github.com/ruaronicola/cgc-inputs

Usage

Given a set of binaries and crashing inputs, to prepare the model for exploration:

# analyze each binary+pov
run.py --analyse --filename CADET_00001 --pov CADET_00001.pov
# ...
# concatenate the resulting traces
run.py --concatenate
# train while excluding the target binary
run.py --train --filename CADET_00001
# load the model model.XGBClassifier.CADET_00001.pkl generated in the previous step and explore the target binary
run.py --explore ml

Known Issues

Some of the depencies of this project (for example, archr) have since been updated and are now incompatible, it might be necessary to check out an older version.