PathArmor context-sensitive CFI implementation
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
DynamoRIO-Linux-5.0.0-9
Dyninst-8.2.1
at
bin
di-opt
dyninst-pass
dyninst-static
include
lkm
nginx-0.8.54
patches
shared
toy-bug
INSTALL.md
LICENSE.md
Makefile
Makefile.inc
README.md
lkm-start.sh
run-analyser.sh
run-app.sh
run-at.sh
typescript.ab
typescript.dyninst
typescript.kernel
typescript.lkm
typescript.nginx
typescript.pa
typescript.packages
typescript.run
typescript.run-nginx-analyzer
typescript.run-toy
typescript.run-toy-non-legit
typescript.toy-analyser
typescript.toy-analyser-non-legit

README.md

patharmor

PathArmor context-sensitive CFI implementation

Stuff that gets built in this directory from PA to which LICENSE.md applies:

  • lkm: directory containing the Linux kernel module
  • dyninst-pass: dyninst pass used in PA
  • dyninst-static: static part of PA LBR analysis
  • include: many include dirs
  • shared: runtime loaded module in PA
  • toy-bug: toy example that can be used to trigger a non-legitimate LBR

Stuff that gets built that is included but not part of PA itself to which LICENSE.md does not apply:

  • Dyninst-8.2.1 with patches in patches/ applied
  • DynamoRIO-Linux-5.0.0-9
  • nginx-0.8.54: stock nginx distribution we used to test PA

Other dirs:

  • bin: install directory for di modules

Notes:

  • These Makefiles assume LLVM 3.4

Building / Installing

Detailed instructions are in INSTALL.md.

Authors

This software is the open-sourcing of the research prototype supporting the paper "Practical Context-Sensitive CFI", published in ACM Computer and Communications Security (CCS) 2015. The authors on the paper, and to some degree the software, are:

First authors:

  • Victor van der Veen
  • Dennis Andriesse

Further:

  • Enes Göktas
  • Ben Gras
  • Lionel Sambuc
  • Asia Slowinska
  • Herbert Bos
  • Cristiano Giuffrida

Special thanks also to:

  • Xi Chen (Address-Taken implementation)
  • Alyssa Milburn (help with debugging LLVM's DSA)