Skip to content

isabella232/lvi-llvm-optimization-plugin

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Load Value Injection Optimization Plugin for LLVM* Project

*Other names and brands may be claimed as the property of others.

A document describing this mitigation can be found here:

https://software.intel.com/security-software-guidance/insights/optimized-mitigation-approach-load-value-injection

Prerequisites

The LVI optimizing plugin has the following dependencies:

  • CMake
  • SYMPHONY (version 3)

For example, for Ubuntu 16.04+

$ apt install cmake coinor-libsymphony-dev

Build and Install

To obtain and build the plugin:

$ git clone https://github.com/intel/lvi-llvm-optimization-plugin.git
$ cd lvi-llvm-optimization-plugin
$ mkdir build
$ cd build
$ cmake -DCMAKE_BUILD_TYPE=RELEASE ..
$ make

(Optional) installation:

$ sudo make install

Usage

This plugin is intended to be used with LLVM/clang LVI load hardening, for example:

$ clang -O3 -lvi-hardening my_file.c \
    -mllvm -x86-lvi-load-opt-plugin=<path-to-plugin-install>/OptimizeCut.so

At the time of this writing, the patch that enables LVI load hardening can be found here: https://reviews.llvm.org/D75938.

Debugging

When using a DEBUG build (i.e., CMAKE_BUILD_TYPE=DEBUG), this plugin emits detailed information about the optimizations it is performing.

About

Load Value Injection Optimization Plugin for LLVM* Project

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 97.0%
  • CMake 3.0%