Mastodon Mastodon Mastodon Mastodon

Reverse Engineering

Aktualisiert: · CyberSecureFox Editorial Team

Reverse Engineering ist die Analyse von Software oder Hardware, um ohne Zugang zu Quellcode oder Konstruktionsunterlagen zu verstehen, wie sie funktioniert.

Wie Reverse Engineering funktioniert

Analysten kombinieren meist zwei Ansätze:

  • Statische Analyse – Untersuchung einer Binärdatei, ohne sie auszuführen. Disassembler und Decompiler wie IDA Pro, Ghidra (2019 von der NSA als Open Source veröffentlicht) und Binary Ninja übersetzen Maschinencode zurück in lesbares Assembler oder Pseudo-C.
  • Dynamische Analyse – Ausführung unter einem Debugger (x64dbg, WinDbg, GDB) oder in einer instrumentierten Umgebung, wobei Speicher, API-Aufrufe und Netzwerkverkehr beobachtet werden.

Beim Hardware-Reverse-Engineering kommen Logikanalysatoren und das Auslesen von Firmware aus Flash-Chips hinzu.

Warum Reverse Engineering für die Sicherheit wichtig ist

  • Malware-Analyse – Forschende zerlegen Malware, um ihre Fähigkeiten zu verstehen, Indikatoren zu extrahieren und Erkennungsregeln zu schreiben. Malware-Autoren wehren sich mit Obfuskation, Packern und Anti-Debugging-Tricks.
  • Schwachstellenforschung – Suche nach Fehlern in Closed-Source-Produkten, oft im Rahmen von Bug-Bounty-Programmen.
  • Patch-Diffing – der Vergleich eines Programms vor und nach einem Sicherheitsupdate zeigt die behobene Lücke. Angreifer nutzen dieselbe Technik, um binnen Tagen einen Exploit für ungepatchte Systeme zu bauen – deshalb ist schnelles Patchen so wichtig.
  • Interoperabilität und Prüfung – kontrollieren, was ein Gerät oder eine App tatsächlich mit Nutzerdaten macht.

Rechtliche und ethische Aspekte

Reverse Engineering zur Sicherheitsforschung und für Interoperabilität ist in vielen Rechtsordnungen erlaubt; Lizenzverträge und Urheberrecht (in der EU etwa die Software-Richtlinie, in den USA der DMCA) setzen jedoch Grenzen. Gefundene Lücken melden Forschende üblicherweise im Rahmen einer koordinierten Offenlegung.

Synonyme:
Rückentwicklung, Software-Reverse-Engineering