Vorlesung mit integrierter Übung

Reverse-Engineering Software Systems

Name im Diploma SupplementReverse-Engineering Software Systems
Anbieter Juniorprofessur für Sichere Software Systeme (https://www.syssec.wiwi.uni-due.de/)
LehrpersonJun.-Prof. Dr. Lucas Davi
SWS4Sprachedeutsch
TurnusWintersemestermaximale Hörerschaftunbeschränkt

empfohlenes Vorwissen

Kenntnisse mindestens einer Programmiersprache (Java, C, C++, Python, Rust, …) und Erfahrung in systemnaher Programmierung

Abstract

In dieser Veranstaltung sollen die Studierenden lernen Computerprogramme auf Binärebene (ohne vorhandenen Quellcode) zu analysieren und ggf. die Programmlogik zu ändern. Dabei werden im Vorlesungsteil die notwendigen theoretischen Inhalte vermittelt, welche anschließend im praktischen Teil der Übung angewendet werden sollen. Ein besonderer Fokus liegt dabei auf Intel x86 basierten Systemen auf denen die meisten klassischen Anwendungen lauffähig sind. Zusätzlich werden auch gängige Fehler in Programmen erläutert und analysiert wieso diese für Angriffe ausgenutzt und vermieden werden können. Ziel der Veranstaltung ist es, dass die Studenten ein grundlegendes Verständnis über die Möglichkeiten im Bereich Reverse-Engineering haben und dort bewährte Tools einsetzen können.

Lehrinhalte

  1. Grundlagen der Prozessorarchitektur
  2. x86 Assembler (32 und 64 Bit Systeme)
  3. Compileroptimierungen
  4. Methoden zur Kontrollfluss- und Datenflussanalyse
  5. Programmfehler erkennen und beheben
  6. Programmobfuskation

Literaturangaben

Eldad Eilam, „Reversing: Secrets of Reverse Engineering“, Wiley Verlag

didaktisches Konzept

Präsentationensfolien, Moodle-Kurs, Praktische PC-Labore, schriftliche Hausarbeiten

Hörerschaft

  • AI-SE Bachelor 2017>Vertiefungsstudium >Wahlpflichtbereich I: Informatik >Modul "Reverse-Engineering Software Systems"5.-6. Fachsemester, Pflicht
WIWI‑C1152 - Vorlesung mit integrierter Übung: Reverse-Engineering Software Systems