Experiments for DivCon
This repo contains experiments for DivCon. For running these experiments as is, you need to have available:
- 5 physical cores
- 50GB of memory (less will also probably work)
All scripts require Python 2, e.g.:
python -V
Python 2.7.12
A way to switch to Python 2 is by using alias
:
alias python="/usr/bin/python2.7"
More ways are described here
The scripts in this code have dependencies on ROPgadget, capstone, matplotlib, numpy, and uncertainties
To install these run:
pip install capstone matplotlib ROPgadget numpy uncertainties
You may need to install tk:
sudo apt-get install python-tk
To Install DivCon, follow the instruction in DivCon.
After successfully installing DivCon, set environment variable DIVCON_PATH:
export DIVCON_PATH=/path/to/divcon
Clone the git repository with Unison extension:
git clone https://github.com/unison-code/llvm.git
Select the unsion branch:
git checkout -b release_38-unison origin/release_38-unison
Install llc:
mkdir build
cd build
cmake -G "Unix Makefiles" ..
make && sudo make install
To run the experiments in parallel write:
make run-par
NOTE: The experiments are spawned to the background and might take a while before finishing.
make aggr
NOTE: The experiments are spawned to the background and might take a while before finishing.
then:
make merge
and then :
make results
make gadgets
NOTE: The experiments are spawned to the background and might take a while before finishing.
Extract .csv files
make extract