Navigation

Software Reverse Engineering

Lecturers

Details

Time and place:

  • Tue 14:15-15:45, Room E 1.11

Fields of study

  • WPF INF-BA-V-SEC from SEM 3
  • WF INF-MA from SEM 1
  • WPF IuK-MA-KN-INF from SEM 1
  • WPF IuK-MA-REA-INF from SEM 1

Prerequisites / Organizational information

Alle Materialien sind per StudOn verfügbar, bitte registrieren Sie sich dort für den Kurs. Die Abgabe der Übungen und Ankündigungen zum Kurs erfolgen ebenfalls über StudOn. Link: https://www.studon.fau.de/crs2479736.html

Content

Ein regelmäßiger Untersuchungsgegenstand der angewandten IT-Sicherheit ist unbekannte Software deren Funktionsweise analysiert werden soll, bspw. um Schwachstellen aufzudecken oder um das Verhalten von Malware zu analysieren. Während "Reverse Engineering" im allgemeinen den Vorgang bezeichnet Konstruktionselemente und Strukturen aus einem bestehenden System zurückzugewinnen, bezeichnet "Software Reverse Engineering" speziell die Rückgewinnung von Software-Anforderungen und Intentionen aus Binärcode. Im Gegensatz zu "Software Engineering", bei dem es um die Übersetzung von Anforderungen in Code geht, muss hier also der umgekehrte Weg gegangen werden. Die Rückgewinnung von Informationen kann die Erstellung von äquivalenten Quell- oder Pseudocode beinhalten, hat darüberhinaus aber stets den Anspruch ein Programm auf höherer Ebene "zu verstehen".

Im Rahmen der Vorlesung werden grundlegende Konzepte sowie fortgeschrittene Techniken und Tools aus dem Bereich Software Reverse Engineering vorgestellt. Ziel der Veranstaltung ist ein Verständnis von statischen und dynamischen Methoden zur Analyse von Binärprogrammen, indem typische Werkzeuge wie Disassembler (bspw. IDA Pro) und Debugger (bspw. OllyDbg) zum Einsatz kommen. Es wird auch verdeutlicht, mit welchen Schwierigkeiten Software Reverse Engineering zu kämpfen hat und wo seine Grenzen liegen, bspw. im Bereich automatisierter Decompiler. Ebenso werden Techniken angesprochen um sich gegen Software Reverse Engineering zu schützen, bspw. Code-Verschleierung (Obfuscation) gegen statische Analyse und Anti-Debugging Techniken gegen dynamische Analyse. Außerdem wird vorgestellt wie sich Schwachstellen in Binärprogrammen aufspüren lassen und wie sich diese trotz aktueller Schutzmechanismen (bspw. ASLR und DEP) ausnutzen lassen.

Recommended Literature

- "Reversing: Secrets of Reverse Engineering" von Eldad Eilam, Wiley Publishing Inc., Indianapolis, 2005 - "The IDA Pro Book: An Unofficial Guide to the World's Most Popular Disassembler" von Chris Eagle, No Starch Press, San Francisco, 2011 - "Microsoft Windows Internals: Fifth Edition" von Mark E. Russinovich und David Solomon, Microsoft Press, Washington, 2009 - "Surreptitious Software: Obfuscation, Watermarking, and Tamperproofing for Software Protection" von Christian Collberg und Jasvir Nagra, Addison-Wesley Professional, 2009 - "Buffer Overflows und Format-String-Schwachstellen: Funktionsweisen, Exploits und Gegenmaßnahmen" von Tobias Klein, Dpunkt Verlag, 2003

Additional information

Expected participants: 30

www: https://www.studon.fau.de/crs2479736.html