Program Analysis

Summer 2025
Time and Place
  • Lecture: Thur 10–12, MC 1/30+31
  • Exercise: Tue 10–12, MC 1/30+31
Language
English
2+2 SWS
5 ECTS

Course Description and Syllabus

The course will cover, among other aspects, the following topics and techniques from the area of program analysis:

  • Static and dynamic program analysis
  • Control flow analysis
  • Data flow analysis
  • Symbolic execution
  • Abstract interpretation
  • Binary reverse engineering
  • Binary instrumentation
  • Taint tracking
  • Program slicing

The first part of the course includes an introduction to x86/x64 assembler and the basic techniques of reverse engineering.

The lectures are accompanied by practical exercises in Assembly, C, Python, and Rust.

Goals

Students will be familiar with various concepts, techniques, and approaches from the area of program analysis. This includes an overview of various concepts from the fields of reverse engineering, binary program analysis, and program analysis of source code and intermediate representations. Students will have a basic understanding of both static and dynamic methods for analyzing any given program. They are able to describe various aspects of program analysis and apply them to new problems.

Prerequisites

Prior programming experience in assembly, C, Python and Rust are helpful for understanding the course contents and solving the practical exercises.

The following courses (or equivalent) are helpful but not necessary:

  • System Security (211011)
  • Operating Systems (211005)