$ git clone https://github.com/aditya-wate/cross-vm-side-channel.git
- Navigate to 'sync' directory from repo root
$ cd sync
- Execute Makefile
$ make
- It will generate a dynamic library 'libsync.so'. Copy it to '/usr/local/lib.' Also copy the header file to the include directory
$ sudo cp libsync.so /usr/local/lib
$ sudo cp sync.h /usr/include
- Navigate to 'cross-vm' directory from repo root
$ cd cross-vm
- Execute Makefile
$ make
- libsync library requires label file location. Environment variable LABEL_FILE should be set first.
$ export LABEL_FILE=<location of the file>
- Run the spy binary
$ ./spy
This will generate a label file as specified in step 1, also a binary file namee 'timings.bin' in the current directory.
The number of times the spy needs to be executed should be set in measurement.c. Change the value of const int n on line # 11 to the number of times the prime and probe process needs to be executed. Change the value of op->e on line # 68 to change the exponent value.
Northeastern University, 2016.
Note: The header files in cross-vm/include has been reused from a similar paper for ARM architecture(http://daim.idi.ntnu.no/masteroppgaver/009/9231/masteroppgave.pdf).