Skip to content

greyd0g/Program-Analysis-Note

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 

Repository files navigation

Program Analysis Note

Tool

Here are some tools for program analysis. I strongly recommend you to implement algorithms on them.

  • LLVM: the Clang Static Analyzer is a awesome tool to analyze C/C++ from AST level. And LLVM Pass provides a more low-level IR to analyze.
  • Soot: tools for Java program anlysis and optimization
  • BAP: Binary Analysis Platform. Written in OCaml. We can inspect customize IR BIL to analyze different binary.
  • Angr: Binary Analysis and Symbolic Exectuion

Project

  • SVF: Program Analysis Framework based on LLVM
  • Infer: Source code static analysis based on OCaml
  • CWE-Checker: Binary analysis based on BAP
  • Klee: Symbolic Execution based on LLVM

Intro

Normally, the basic parts include dataflow analysis frameword (reachiing definition, interval analysis, ...), pointer analysis (andreson and steensgaard), and abstract interpretation (sign analysis). You are also encouraged to learn discrete math to understand the notations in text books.

  • Courses:

    • UW CSE 501: Personally recommend, the contents are more compacted.
    • CMU CS17-355: Some slides are missing. And the contents focus on security stuff more. Recommend to use notes here and slides from UW
    • CMU CS15-414: Model checking related
  • Books:

    • SPA Book: Personally recommend. This book is static analysis oriented. It also provied a toy language analyszer. The psedu-code and syntax are better the PPA.
    • Principle of Program Analysis: Old school book. The syntax is abstract. Might be too hard to understand.

General Analysis

Binary Analysis

About

Yet another awesome Program Analysis

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors