Software Reverse Engineering

Modulbeschreibung Software Reverse Engineering

Studiensemester1.
DozentProf. Dr. Christian Dietrich
Lehrform / Semesterwochenstunden2 SWS Vorlesung, 2 SWS Praktikum
Leistungspunkte6
TurnusWintersemester, jährlich
VoraussetzungenKeine
InhaltMaschinensprache und Assemblersprache für die Intel x86-Architektur • Wiederholung wichtiger Betriebssystemaspekte am Beispiel von Windows oder Linux • Methoden zur statischen Code-Analyse • Disassemblierung • Erkennung von CHochsprachenkonzepten in Maschinencode • Kontrollflusskonstrukte und Kontrollflussgraphen • Dekompilation • Abbildung von C++- Hochsprachenkonzepten (Vererbung, Virtual Function Calls) in Maschinencode • Methoden zur dynamischen Code-Analyse • Debugging • Hooking • Binary Instrumentation • Emulation • Grundlagen der Schadsoftware-Analyse
Angestrebte LernergebnisseDie Studierenden beherrschen die grundlegenden Konzepte des Software Reverse Engineering und können einige statische und dynamische Methoden zur Programmanalyse zur Lösung überschaubarer, praktischer Aufgaben sicher anwenden. Sie kennen gewisse Elemente von Maschinensprachen, insb. Intel x86, amd64 oder ARM, sowie zur Umsetzung gewisser Hochsprachen-Idiome in MaschinencodeEntsprechungen. Durch exemplarische Anwendung der Methoden werden praktische Erfahrungen zur Schadsoftware-Analyse gesammelt und ein grundlegendes Verständnis zur Vorgehensweise von Cyber-Angreifern erlangt. Darüber hinaus erfahren sie die Grenzen der Programmanalyse beispielsweise bei obfuskiertem Binärcode und können abstrakte Repräsentationen von Programmen, etwa in Kontrollflussgraphen, erstellen und zur Problemlösung nutzen. Gegebenenfalls werden die Kenntnisse im Rahmen eines Capture-The Flag-Wettbewerbs angewendet und vertieft.
Studien- / PrüfungsleistungenStudienleistungen laut Prüfungsordnung als Voraussetzung zur Prüfungsteilnahme: Keine
Prüfungsleistungen: Klausur (90 Min.) oder mündliche Prüfung
Literatur– Eilam, E.: Reversing: Secrets of Reverse Engineering; John Wiley & Sons, 1. Auflage
– Dang, B./Gazet, A.: Practical Reverse Engineering: x86, x64, ARM, Windows Kernel, Reversing Tools, and Obfuscation; John Wiley & Sons, 1. Auflage
– Russinovich, M./Solomon, D./Ionescu, A.: Windows Internals, Part 1 & 2; Microsoft Press, 6. Edition
– Diverse aktuelle Konferenz-Publikationen