

PICON: Control Flow Integrity on LLVM IR - ingve
https://github.com/anssi-fr/picon

======
krasin
There's also
[http://clang.llvm.org/docs/ControlFlowIntegrity.html](http://clang.llvm.org/docs/ControlFlowIntegrity.html),
which already comes with LLVM. It's unclear what's better in the OP
implementation.

------
allan_s
Does anyone mind explaining what is control flow integrity, wikipedia seems to
be lacking an article about it, and the README of the project does not help on
that matter.

I understand that whatever this does, the fact that it works on the IR of LLVM
makes it interesting for a wide variety of languages that have a LLVM backend.

~~~
trsohmers
Not a software guy, but to my understanding CFI is basically about being able
to ensure that a program only does what it is supposed to according to its
control flow graph
([https://en.wikipedia.org/wiki/Control_flow_graph](https://en.wikipedia.org/wiki/Control_flow_graph)).
The importance of this is you can have better security guarantees as long as
you trust the compiler and that the architecture doesn't have any serious
flaws.

Also, LLVM backends are the different architectures it supports (x86, ARM,
Power, etc) and frontends are the different languages (C, C++, haskell,
python, etc).

~~~
pohl
Does the GP's use of "backend" needs correction? What a language's compiler
refers to as its backend and what LLVM refers to as a backend can mean
different things.

