Matt Suiche 0c9e8df91c Add 'Security Research and Development with LLVM - Andrew Reiter/' from commit '0605b5174c2bc286d3e95d6c0df620800bef96c7'
git-subtree-dir: Security Research and Development with LLVM - Andrew Reiter
git-subtree-mainline: aa7a9fc1e16c3c5be7ba312c4b4e37775e005101
git-subtree-split: 0605b5174c2bc286d3e95d6c0df620800bef96c7
2017-04-29 17:11:06 +04:00

32 строки
1.0 KiB
Markdown

# Comminute
The code here is intended to be some basics that help with learning
the LLVM API. The points dealt with here are:
- Pass manager use
- Pass dependency
- Some basic IR instruction and value analysis
- Use/User API
It is not meant to be a some great bug hunting tool. It is meant
to help get you to the point where you can start to think about
interprocedural and other analyses. Once you get the feel you
should start to look at other code, like SVF, to get into things.
You should look at building CFGs so you can evaluate globals
better. You should look at some extended interprocedural SSA or
perhaps using Andersen's Alias Analysis for analyzing pointers.
There is a lot to doing good static analysis and that's where the
meat of the research is!
I repeat... Just a learning tool.
### Multiple potentially dangerous examples
The potent-danger examples are there to illustrate you can do the
thing a few different ways. Essentially, depending on your
design needs and end goals, you may want to implement one
methodology or another...