Shadowclone: Blocking DOP Attacks with Compiletime Stack Layout Randomization
Authors: Yunjie Pan, Shibo Chen, Cheng Chi, Yifan Guan
University of Michigan - Ann Arbor
There are two ways of install llvm10. Since it's not recommended to install globally, I will list two ways of installing locally.
First download the newest llvm10 from github repo
git clone git@github.com:llvm/llvm-project.git
Then compile llvm
cd llvm-project
mkdir build
cd build
cmake -DLLVM_ENABLE_PROJECTS="clang;compiler-rt" ../llvm
make -jn # n is the number of thread
Last, add the path to llvm
echo 'export PATH={Your installation directory}/llvm-project/build/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
If can also choose to automatically install it in $HOME/tools/ using the install.sh script by running install.sh
./install.sh
First cd into Shadowclone directory, then
mkdir build
cd build
cmake ..
make -j4
Refer to 'build.sh' script in the src directory of each benchmarks.