Program Analysis

Summer 2023
Time and Place
  • Lecture: Wed 10-12, ID 04/401
  • Exercise: Thur 10-12, ID 04/413
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 analysis of programs
  • Analysis of control and data flow
  • Symbolic execution
  • Taint tracking
  • Binary instrumentation
  • Program slicing
  • Overview of existing analysis tools

In the first part of the course, an introduction to x86/x64 assembler is given and the basic techniques of reverse engineering are presented. The lectures are accompanied by exercises, in which the presented concepts and techniques are practiced.

Goals

Students will be familiar with various concepts, techniques, and tools from the area of program analysis. This includes an over­view of various concepts from the field of reverse engineering as well as binary analysis. Students have basic understanding of both static and dynamic methods for analyzing a given program. They are able to describe various aspects of program analysis and apply them to new problems.

Prerequisites

Experience in system-oriented programming, assembler as well as programming in C are helpful for understanding the topics taught. Previous knowledge from the lectures System Security / Operating System Security is helpful but not necessary for understanding the topics.