Summer semester 2023, in-person and Moodle.
Wednesday 10:00 – 12:00 ID 04/401 (Lectures)
Thursday 10:00 – 12:00 ID 04/413 (Exercises)
Students will learn various concepts, techniques, and tools in the area of program analysis, including reverse engineering and binary analysis. They will also gain understanding of static and dynamic analysis, as well as trade-offs in soundness, completeness, and precision of various analysis techniques. They will be able to describe various aspects of program analysis, and assess and adapt existing program analysis techniques to new problem domains.
The lecture covers various topics as an introduction to program analysis from a practical point of view, while also covering its underlying mathematical foundation in terms of what programs can be analyzed, and how accurate the analyses will be. Topics include, but are not limited to:
- Static and Dynamic Program Analysis
- Basic Reverse Engineering
- Binary Instrumentation
- Control Flow Analysis
- Data Flow Analysis and Abstract Interpretation
- Symbolic Execution and Axiomatic Semantics
- Operational Semantics
- Taint Tracking
- Program Slicing
No mandatory course requirements. Basic understanding of systems programming (assembly and C), boolean logic, set algebra, and some comprehension of mathematical formulas is helpful for the course.
English. Questions in German are perfectly OK, answers will be given in English.
We want to encourage you to be comfortable using English and to become fluent in it. Naturally, we will not penalize (minor) typographical mistakes and grammar as long as your answers are comprehensible.
During the course, there will be exercises/assignments. They are complementary to the lecture material and help in deepening your understanding in the topics covered in the lecture.
Unless specified otherwise, assignments and lab work needs to be performed and submitted individually. For individual assignments, any form of unsolicited collaboration or plagiarism will not be tolerated, will result in the immediate disqualification of the involved students from that particular assignment, and may result in disciplinary action by the university.
Please see also the guidelines on good scientific practice by RUB.
„Teilprüfung“ of exercises/assignments.
Exact split between exercises/assignments and final exam TBD.
An additional bonus can be received for participating in online discussions about the reading material and answering fellow students‘ questions.