Reverse Engineering
Table of contents |
2 Literatur 3 Siehe auch |
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 oder auf deren Basis Weiterentwicklung zu betreiben.
Reverse Engineering ist ein ganz reguläre von Menschen praktizierte Analysemethode und wird somit auch von Naturwissenschaftlern praktiziert:
Speziell bezogen auf Computer-Software wird darunter meistens einer der beiden folgenden Vorgänge verstanden:
Reverse Engineering
Sie alle betreiben also im weiteren Sinne ebenfalls Reverse Engineering.
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 (siehe auch Trojaner) 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 sogenannten 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.
Literatur
Aufsätze
Bücher
Siehe auch