Bundesamt für Sicherheit in der Informationstechnik

G 5.206 Reverse Engineering

Beim Reverse Engineering (Re-Engineering) wird versucht, aus einem fertigen System durch Analyse der Strukturen, Zustände und Verhaltensweisen die Konstruktionselemente zu extrahieren. Dieses können Hardware- und Software-Elemente sein.

Der erste Schritt bei einem systematischen Hardware Reverse Engineering besteht darin, sich grundlegende Informationen zum Zielsystem, dessen Komponenten und internen Boards zu beschaffen. Daraufhin werden Funktionen, Zeitverhalten und Signalpfade analysiert. Anschließend wird mittels physikalischer Bearbeitung, wie beispielsweise in G 5.203 Physikalischer Eingriff in ein eingebettetes System beschrieben, der Aufbau des Bauteils analysiert. Mittels Rasterelektronenmikroskop, Transmissionselektronenmikroskop oder Rastersondenmikroskop und spezieller Chemikalien können Materialübergänge, Strukturgrößen, Schichtenanzahl und p/n-dotierte Zonen sichtbar gemacht werden. So kann nach und nach jede Schicht eines Chips erfasst werden und die Transistoren, Spulen, Widerstände, Kondensatoren und Leitungen können mittels spezieller Software strukturiert und dokumentiert und der Schaltplan verifiziert werden.

Zum Software Reverse Engineering muss ein Angreifer zunächst Zugriff auf den Maschinencode haben. Mit Hilfe eines Disassemblers kann er Maschinencode in Assemblercode rücküberführen und mit einem Decompiler diesen in einen verständlicheren Pseudocode transferieren.

Stand: 15. EL Stand 2016