Der Begriff des Reverse Engineering leitet sich aus dem Englischen ab und beschreibt eine umgekehrte Entwicklung, Rekonstruktion oder auch Nachkonstruktion. Die Bezeichnung findet auf Vorgehensweisen Anwendung, bei denen ein vollendetes System oder ein fertiggestelltes Produkt untersucht wird, um dessen Struktur, Verhaltensweise oder Konstruktionselemente verstehen und extrahieren zu können. Das Reverse Engineering unterscheidet sich von der Anfertigung bloßer Nachbildungen. Während letztere darauf abzielen, die wesentlichen Funktionen des Originals weitestgehend nachzubilden, soll beim Reverse Engineering eine möglichst exakte Kopie erstellt werden, die schließlich auch weiterentwickelt werden kann. Des Weiteren unterscheidet sich das Reverse Engineering von der wissenschaftlichen Methode, indem es von Menschen gemachte Objekte untersucht, während sich die wissenschaftliche Methode mit Naturerscheinungen befasst.
Historisch hat sich diese Herangehensweise aus der Hardwareanalyse zu gewerblichen und militärischen Zwecken entwickelt.

Das Reverse Engineering im Detail

Die Technik des Reverse Engineering an sich dreht sich in ihrem Kern nicht um die Erstellung einer Kopie des untersuchten Objekts. Vielmehr soll dessen Funktionsweise ergründet werden. Nicht selten dient diese Analyse sogar nur der Anfertigung von Metadaten im Sinne einer Dokumentation oder eines Altsystems. Daher werden oftmals sogar Konkurrenzprodukte unter die Lupe genommen, um im Sinne der Wettbewerbsanalyse einen genaueren Einblick in die Strategie der Mitbewerber zu erlangen.

Anwendungsfelder

Die üblichen Einsatzbereiche des Reverse Engineering sind die folgenden:

  • Maschinenbau
  • Elektronisches Ingenieurwesen
  • Softwaretechnik
  • Chemieingenieurwesen
  • Systembiologie

Darüber hinaus lässt sich die Praxis in zwei weitere Felder einteilen. Einerseits wird dabei Hardware, andererseits Software untersucht.

Hardware

Die Analyse von Hardware wurde bereits in der DDR genutzt, um die Funktionalität und Hardwarebasis von Chip-Dies zu untersuchen. Dazu trug man dessen Schichten durch einen Schleif- oder Ätzprozess Schritt für Schritt ab und untersuchte die dadurch entstandenen Flächen mikroskopisch. Auch heute noch werden solche Techniken angewandt.

Software

Im Software-Bereich umfasst das Reverse Engineering die folgenden Aspekte:

  • Die Extraktion des Quellcodes aus dem Maschinencode: Der Maschinencode (machine code) kann vom Computer direkt ausgeführt, allerdings auch nur von ihm gelesen werden. Der Quellcode (source code) hingegen ist für Menschen lesbar, kann vom Computer jedoch nicht ausgeführt werden. Dazu ist wiederum die Übersetzung in den Maschinencode notwendig. Um eine solche Umwandlung des Codes durchführen zu können, benötigt man beispielsweise einen Dissassembler oder Decompiler. Davon leitet sich auch der Name „Dekompilierung“ für die Umwandlung des Maschinencodes in den Quellcode ab.
  • Die Erforschung des Kommunikationsprotokolls und insbesondere dessen Regeln, indem man den Ablauf der Kommunikation beobachtet. Dazu eignet sich beispielsweise ein sogenannter Sniffer. Diese Software überprüft den Datenverkehr eines bestimmten Netzwerks darauf, ob auffällige Ereignisse auftreten.
  • Die nachträgliche Erstellung eines Modells auf Basis des Quellcodes, die sogenannte objektorientierte Programmierung (OOP).

Außerdem ist das Reverse Engineering hilfreich, um Gerätetreiber zu programmieren. Das Wissen, welches dafür vorausgesetzt wird, ist oftmals nicht öffentlich verfügbar, weshalb die Entwickler eines Betriebssystems genauere Informationen benötigen, die sich zumeist mithilfe eines Sniffers herausfinden lassen.
Auch im Bereich der Abandonware leistet das Reverse Engineering wertvolle Dienste. Dabei handelt es sich um Software (vorwiegend Computerspiele), die der Hersteller nicht mehr vertreibt oder für die keine technische Unterstützung mehr besteht. In diesem Falle lassen sich dank des Reverse Engineering Rekonstruktionen des Quellcodes anfertigen, sodass das Spiel auch auf andere Plattformen übertragen werden kann. Dieses Verfahren wird oftmals aber auch als eigene Technik gesehen und als Code-Rückführung bezeichnet.

Maschinenbau

Der Hauptanwendungsbereich des Reverse Engineering im Maschinenbau ist auf Objekte bezogen, die Freiformflächen aufweisen. Vor allem Energiemaschinen und Automobilkarosserien bedienen sich der Freiformflächen. Von Hand gemachte Gegenstände oder maschinengefertigte Objekte, die anschließend per Hand modifiziert wurden, sollen so digital erfasst werden können, um sie für verschiedenste Simulationen nutzbar zu machen.

Dafür werden grundsätzlich 3D-Scanner eingesetzt, die auf der Fotooptik oder der Lasertechnik basieren. Der Prozess, der als eigentliches Reverse Engineering gilt, beginnt beim Scannen des Objektes. Auch zum Zwecke der Qualitätsprüfung und -überwachung ist dieser automatisierte Prozess ideal geeignet.

Im Maschinenbau wird beim Reverse Engineering zwischen zwei Verfahren unterschieden:

  • parametrisierte Rückführung: Einfache Geometrieelemente werden auf eine Menge von Punkten eines Vektorraums (Punktewolke) gelegt und anschließend zu einem Gesamtbild verschmolzen. Meist entstehen so Kugel-, Kreis- oder Flächenformen.
  • nicht parametrisierte Rückführung: Sofern ein Objekt keine üblichen geometrischen Eigenschaften hat, wird diese Methode genutzt. Man stülpt eine netzstrumpfartige Vorrichtung über das Objekt. Der Strumpf erzeugt daraufhin die Flächen eines CAD-Modells, das in kleine Grids eingeteilt ist.

Das Reverse Engineering in der juristischen Betrachtung

Das Reverse Engineering ist in den Lizenzbedingungen vieler Firmen ausdrücklich untersagt. Protokolle zu überprüfen, ist davon jedoch ausgenommen, da dazu die Software an sich gar nicht unter die Lupe genommen werden muss. Gleichzeitig ist ein vollständiges Verbot des Reverse Engineering beispielsweise in Deutschland ohnehin rechtlich unwirksam. Zumindest um eine Überprüfung der Anwendungssicherheit der Software sowie die Fehlerbehebung bzw. die Herstellung ihrer Interoperabilität mit anderen Programmen vornehmen zu können, muss das Reverse Engineering erlaubt sein. Folglich verwenden die besagten Unternehmen derartige Lizenzklauseln vorwiegend, um Nutzer von einer Dekompilierung abzuschrecken. Auch auf technischer Ebene bedienen sich diese Firmen verschiedener Strategien, um das Reverse Engineering zu erschweren oder gar unmöglich zu machen. So lassen sie ihre Software verschlüsseln und erschweren die Verständlichkeit des Quellcodes weiterhin durch die sogenannte Obfuskation.

Wer das Reverse Engineering mit der Absicht betreibt, Kopien für den gewerblichen Vertrieb herstellen zu können, fällt mit seinem Handeln in den Anwendungsbereich der gewerblichen Schutzrechte. Neben urheberrechtlichen Schutzansprüchen der Rechteinhaber kommen auch das Patentrecht sowie das Geschmacksmusterrecht in Betracht, je nach Art des kopierten Elements. Während Software hinsichtlich ihres Codes als Computerprogramm durch das Urheberrecht geschützt ist, können technische Neuerungen Patentschutz erlangen. Das Geschmacksmusterrecht hingegen beschäftigt sich mit ästhetischen Erscheinungsformen wie beispielsweise Verpackungen.

  • Posted on 22. October 2018
  • Written by 3dworld
  • Categories: Engineering
Comments Off on Reverse Engineering

Comments are closed.