Reverse Engineering (engl., bedeutet:
umgekehrt entwickeln,
rekonstruieren, Kürzel:
RE) bezeichnet den Vorgang, aus einem bestehenden, fertigen System oder einem meist industriell gefertigten Produkt durch Untersuchung der Strukturen, Zustände und Verhaltensweisen die Konstruktionselemente zu extrahieren. Aus dem fertigen Objekt wird somit wieder ein Plan gemacht. Im Gegensatz zu einer funktionellen Nachempfindung, die ebenso auf Analysen nach dem Black Box Prinzip aufbauen kann, versucht das Reverse Engineering das vorliegende Objekt weitgehend exakt abzubilden. Es wird somit ermöglicht, eine 1:1 Kopie des Objekts zu machen und auf deren Basis Weiterentwicklung zu betreiben.
Reverse Engineering ist ein ganz reguläre von Menschen praktizierte Analysemethode und wird somit auch von Naturwissenschaftlern praktiziert:
- Ein Genetiker versucht die Baupläne der DNA zu entschlüsseln.
- Ein Biologe versucht bestimmte Vorgänge in der Natur zu verstehen.
- Ein Physiker untersucht den Aufbau von Teilchen.
Sie alle betreiben also im weiteren Sinne ebenfalls Reverse Engineering.
Speziell bezogen auf Computer-Software wird darunter meistens einer der beiden folgenden Vorgänge verstanden:
- Die Rückgewinnung des Quellcodes oder einer vergleichbaren Beschreibung aus Binärcode, z. B. von einem ausführbaren Programm oder einer Programmbibliothek.
- Die Erschließung der Regeln eines Kommunikationsprotokolls aus der Beobachtung der Kommunikation.
Im ersten Falle werden oft Decompiler eingesetzt, die den Quellcode eines Programms weitestgehend automatisch aus seinem Binärcode zurückgewinnen. Ist dies nicht durchgehend möglich, so kann auch der aus dem Binärcode des Programms direkt ermittelbare Maschinencode auch manuell analysiert werden, was allerdings eine merkliche Erschwernis bedeutet. Es kann i.d.R. nicht der komplette Programmquellcode ermittelt werden, da z. B. Kommentare und lokale Objektnamen nur selten im verfügbaren Binärcode enthalten sind. Oft ist das Ergebnis jedoch trotzdem für den jeweiligen Zweck ausreichend, z. B. zur Verhaltensanalyse eines Softwaresystems oder als Hilfe beim Beheben eines Fehlers.
Viele Firmen untersagen das Reverse Engineering ihrer Produkte durch entsprechende Lizenzbedingungen. Die Analyse von Protokollen ist davon rechtlich nicht betroffen, weil dabei die Software selbst gar nicht Gegenstand der Untersuchung ist. Zudem sind solche Lizenzklauseln in vielen Ländern generell ungültig, da den Nutzern der Sache zur Überprüfung der Anwendungssicherheit oder zur Fehlerbehebung durch den Gesetzgeber das Recht zugestanden wird, ein von Ihnen erworbenes Softwareprodukt einem Reverse Engineering zu unterziehen. Das reine Untersuchen von Dingen die einem selbst gehören darf man gegebenenfalls der Freiheit der Forschung zuordnen, so dass ebenfalls entsprechende Lizenzklauseln nicht greifen.
Oftmals dienen solche Lizenzklauseln rein dem Zweck der Abschreckung und sind somit als einseitige Willensäußerung bzw. je nach Form als prophylaktische, einseitig vorgetragene Rechtsauffassung zu verstehen, die bei unabhängiger rechtlicher Prüfung möglicherweise keine Bestätigung und somit keinen weiteren Bestand haben wird. Im Softwarebereich spricht man oft von der im Deutschen Raum generell zweifelhaften so genannten Shrink Wrap License Vereinbarung.
Allerdings kann man sich ggf. per Vertragsstrafe zu Zahlungen
im Fall der entdeckten Zuwiderhandlung verpflichtet haben. Dieser Form
der individuellen Vertragsbindung kann man sich unter Umständen sehr wohl vollkommen legal unterworfen haben, wobei es hier meist um Prototypen oder Kleinserien geht, die noch erhebliche Mengen an Geschäftsgeheimnissen enthalten. Oftmals werden aus diesem Grund Rabatte zu Gunsten des Käufers eingeräumt (im Gegenzug zur verminderten Nutzungsmöglichkeit) oder es wird versucht, durch die oben angeführte Vertragsstrafe echte Risiken des Verkäufers (z. B. durch Geheimnisverrat) zumindest in gewissem Umfang abzudecken. Weiterhin findet bei sensiblen Objekten auch die Methode der zeitlich begrenzten leihweisen Überlassung statt.
Benutzt man das Ergebnis des Reverse Engineerings zum gewerblichen Nachbau, so wird man sich mit der großen Menge der gewerblichen Schutzrechte (z. B. Plagiat) in ähnlicher Weise konfrontiert sehen, so wie es auch bei Ergebnissen der ganz normalen eigenständigen Forschung und Entwicklung der Fall sein kann.