Reverse-Engineering - Reverse engineering

Reverse Engineering (auch bekannt als Rückwärts-Engineering oder Back-Engineering ) ist ein Prozess oder eine Methode, durch deren Anwendung versucht wird, durch deduktives Denken zu verstehen , wie ein Gerät, ein Prozess, ein System oder eine Software eine Aufgabe mit sehr wenig (wenn überhaupt) erfüllt ) Einblick in genau, wie dies geschieht.

Reverse Engineering ist in den Bereichen Computer Engineering , Maschinenbau , Design , Elektrotechnik , Software Engineering , Chemieingenieurwesen und Systembiologie anwendbar .

Überblick

Es gibt viele Gründe, Reverse Engineering in verschiedenen Bereichen durchzuführen. Reverse Engineering hat seinen Ursprung in der Analyse von Hardware zum kommerziellen oder militärischen Vorteil. Der Reverse-Engineering-Prozess als solcher befasst sich jedoch nicht mit dem Erstellen einer Kopie oder dem Ändern des Artefakts in irgendeiner Weise. Es ist nur eine Analyse , um Konstruktionsmerkmale von Produkten abzuleiten, die wenig oder keine zusätzlichen Kenntnisse über die Verfahren haben, die bei ihrer ursprünglichen Herstellung beteiligt sind.

In manchen Fällen kann das Ziel des Reverse-Engineering-Prozesses einfach eine Redokumentation von Altsystemen sein . Auch wenn das Reverse-Engineering-Produkt das eines Mitbewerbers ist, kann es sein, dass das Ziel nicht darin besteht, es zu kopieren, sondern eine Mitbewerberanalyse durchzuführen . Reverse Engineering kann auch verwendet werden, um interoperable Produkte zu erstellen , und trotz einiger eng zugeschnittener Rechtsvorschriften der Vereinigten Staaten und der Europäischen Union wird die Rechtmäßigkeit der Verwendung bestimmter Reverse-Engineering-Techniken für diesen Zweck seit mehr als zwei Jahrzehnten vor Gerichten weltweit heftig umstritten.

Software Reverse Engineering kann helfen, das Verständnis des zugrunde liegenden Quellcodes für die Wartung und Verbesserung der Software zu verbessern, relevante Informationen können extrahiert werden, um eine Entscheidung für die Softwareentwicklung zu treffen und grafische Darstellungen des Codes können alternative Ansichten bezüglich des Quellcodes bieten, die helfen können, einen Softwarefehler oder eine Schwachstelle zu erkennen und zu beheben. Bei der Entwicklung mancher Software gehen häufig ihre Konstruktionsinformationen und Verbesserungen im Laufe der Zeit verloren, aber diese verlorenen Informationen können normalerweise durch Reverse Engineering wiederhergestellt werden. Der Prozess kann auch dazu beitragen, die zum Verständnis des Quellcodes erforderliche Zeit zu verkürzen und somit die Gesamtkosten der Softwareentwicklung zu senken. Reverse Engineering kann auch helfen, einen in die Software geschriebenen Schadcode mit besseren Code-Detektoren zu erkennen und zu eliminieren. Das Umkehren eines Quellcodes kann verwendet werden, um alternative Verwendungen des Quellcodes zu finden, z. Dieser Prozess wird häufig verwendet, um Software und Medien zu "knacken" , um ihren Kopierschutz zu entfernen , oder um eine möglicherweise verbesserte Kopie oder sogar einen Knockoff zu erstellen , was normalerweise das Ziel eines Konkurrenten oder Hackers ist.

Malware- Entwickler verwenden häufig Reverse Engineering-Techniken, um Schwachstellen in einem Betriebssystem zu finden , um einen Computervirus zu erstellen , der die Systemschwachstellen ausnutzen kann. Reverse Engineering wird auch in der Kryptoanalyse verwendet , um Schwachstellen in der Substitutionschiffre , dem Algorithmus mit symmetrischem Schlüssel oder der Kryptographie mit öffentlichem Schlüssel zu finden .

Es gibt andere Anwendungen für Reverse Engineering:

  • Schnittstelle . Reverse Engineering kann verwendet werden, wenn ein System mit einem anderen System verbunden werden muss und wie beide Systeme verhandeln sollen. Solche Anforderungen bestehen typischerweise für die Interoperabilität .
  • Militär- oder kommerzielle Spionage . Die Kenntnis der neuesten Forschungsergebnisse eines Gegners oder Konkurrenten durch Diebstahl oder Eroberung eines Prototyps und dessen Zerlegung kann zur Entwicklung eines ähnlichen Produkts oder einer besseren Gegenmaßnahme führen.
  • Obsoleszenz . Integrierte Schaltungen werden oft auf proprietären Systemen entworfen und in Produktionslinien gebaut, die in nur wenigen Jahren veraltet sind. Wenn Systeme , die solche Teile mit nicht mehr aufrecht erhalten werden können , da die Teile nicht mehr hergestellt, ist der einzige Weg , um die Funktionalität in neue Technologien einzuarbeiten den bestehenden Chip Reverse-Engineering und dann neu zu gestalten es mithilfe des Verständnis gewonnen neuere Werkzeuge wie ein Ratgeber. Ein weiteres aus der Obsoleszenz stammendes Problem, das durch Reverse Engineering gelöst werden kann, ist die Notwendigkeit, bestehende Altgeräte zu unterstützen (Wartung und Versorgung für den Dauerbetrieb), die von ihrem Originalgerätehersteller nicht mehr unterstützt werden . Besonders kritisch ist das Problem bei Militäreinsätzen.
  • Analyse der Produktsicherheit . Diese untersucht die Funktionsweise eines Produkts, indem es die Spezifikationen seiner Komponenten ermittelt und die Kosten schätzt und identifiziert potenzielle Patentverletzungen . Ein weiterer Bestandteil der Produktsicherheitsanalyse ist die Erfassung sensibler Daten durch das Zerlegen und Analysieren des Designs einer Systemkomponente. Eine andere Absicht kann darin bestehen, den Kopierschutz aufzuheben oder Zugriffsbeschränkungen zu umgehen.
  • Wettbewerbsfähige technische Intelligenz . Das heißt, zu verstehen, was der Konkurrent tatsächlich tut, und nicht, was er sagt, was er tut.
  • Geld sparen . Herauszufinden, was eine Elektronik leisten kann, kann einem Benutzer den Kauf eines separaten Produkts ersparen.
  • Wiederverwendung . Veraltete Objekte werden dann auf eine andere, aber nützliche Weise wiederverwendet.
  • Gestaltung . Produktions- und Designunternehmen wandten Reverse Engineering auf praktische handwerkliche Herstellungsverfahren an. Die Unternehmen können durch 3D-Scanning, 3D-Re-Modellierung und Re-Design an „historischen“ Fertigungssammlungen arbeiten. 2013optimierten dieitalienischen Hersteller Baldi und Savio Firmino zusammen mit der Universität Florenz ihre Innovations-, Design- und Produktionsprozesse.

Häufige Situationen

Maschinen

Da computergestütztes Design (CAD) immer beliebter wird, ist Reverse Engineering zu einer praktikablen Methode geworden, um ein virtuelles 3D-Modell eines vorhandenen physischen Teils zur Verwendung in 3D-CAD-, CAM- , CAE- oder anderer Software zu erstellen . Beim Reverse-Engineering-Verfahren wird ein Objekt vermessen und anschließend als 3D-Modell rekonstruiert. Das physische Objekt kann mit 3D- Scantechnologien wie KMGs , Laserscannern , Digitalisierern mit strukturiertem Licht oder industriellem CT-Scannen (Computertomographie) vermessen werden . Allein den gemessenen Daten, die normalerweise als Punktwolke dargestellt werden , fehlen topologische Informationen und Konstruktionsabsichten. Ersteres kann durch Umwandeln der Punktwolke in ein Netz mit dreieckiger Fläche wiederhergestellt werden. Reverse Engineering Ziele jenseits Herstellung eines solchen zu gehen Mesh und die Konstruktionsabsicht in Bezug auf einfache analytische Oberflächen gegebenenfalls (Ebenen, Zylinder, etc.) sowie gegebenenfalls zu erholen NURBS Oberflächen eine Boundary-Darstellung CAD - Modell zu erzeugen. Die Wiederherstellung eines solchen Modells ermöglicht es, ein Design zu modifizieren, um neue Anforderungen zu erfüllen, einen Fertigungsplan zu erstellen usw.

Hybridmodellierung ist ein häufig verwendeter Begriff, wenn NURBS und parametrische Modellierung zusammen implementiert werden. Die Verwendung einer Kombination aus geometrischen und Freiformflächen kann eine leistungsstarke Methode der 3D-Modellierung bieten. Bereiche von Freiformdaten können mit exakten geometrischen Oberflächen kombiniert werden, um ein Hybridmodell zu erstellen. Ein typisches Beispiel hierfür wäre das Reverse Engineering eines Zylinderkopfs, das Freiformgussmerkmale wie Wassermäntel und hochtolerante bearbeitete Bereiche umfasst.

Reverse Engineering wird auch von Unternehmen verwendet, um vorhandene physikalische Geometrie in digitale Produktentwicklungsumgebungen zu integrieren, eine digitale 3D-Aufzeichnung ihrer eigenen Produkte zu erstellen oder Produkte von Wettbewerbern zu bewerten. Es wird verwendet, um zu analysieren, wie ein Produkt funktioniert, was es tut und welche Komponenten es hat; Vorrausichtliche Kosten; Potential identifizieren Patentverletzung; usw.

Value Engineering , eine verwandte Tätigkeit, die auch von Unternehmen genutzt wird, beinhaltet die Dekonstruktion und Analyse von Produkten. Ziel ist es jedoch, Möglichkeiten zur Kostensenkung zu finden.

Software

1990 definierte das Institute of Electrical and Electronics Engineers (IEEE) (Software) Reverse Engineering (SRE) als "den Prozess der Analyse eines Subjektsystems, um die Komponenten des Systems und ihre Wechselbeziehungen zu identifizieren und Darstellungen des Systems in anderer Form zu erstellen oder auf einer höheren Abstraktionsebene", bei der das "Fachsystem" das Endprodukt der Softwareentwicklung ist. Reverse Engineering ist nur ein Prüfungsprozess, und das betrachtete Softwaresystem wird nicht modifiziert, was ansonsten ein Re-Engineering oder eine Restrukturierung bedeuten würde . Reverse Engineering kann von jeder Stufe des Produktzyklus aus durchgeführt werden, nicht unbedingt vom funktionalen Endprodukt.

Beim Reverse Engineering gibt es zwei Komponenten: die Neudokumentation und die Designwiederherstellung. Redokumentation ist das Erstellen einer neuen Darstellung des Computercodes, damit er leichter verständlich ist. In der Zwischenzeit ist Design Recovery die Verwendung von Ableitungen oder Argumenten aus dem allgemeinen Wissen oder der persönlichen Erfahrung des Produkts, um die Funktionalität des Produkts vollständig zu verstehen. Es kann auch als "Rückwärtsgang durch den Entwicklungszyklus" angesehen werden. In diesem Modell wird die Ausgabe der Implementierungsphase (in Quellcodeform) in einer Umkehrung des traditionellen Wasserfallmodells in die Analysephase zurückentwickelt . Ein anderer Begriff für diese Technik ist Programmverständnis . Die Working Conference on Reverse Engineering (WCRE) findet jährlich statt, um die Techniken des Reverse Engineering zu erforschen und zu erweitern. Computer-Aided Software Engineering (CASE) und automatisierte Codegenerierung haben einen großen Beitrag zum Reverse Engineering geleistet.

Software-Manipulationsschutztechnologien wie Verschleierung werden verwendet, um sowohl das Reverse Engineering als auch das Re-Engineering von proprietärer Software und softwaregestützten Systemen zu verhindern. In der Praxis ergeben sich zwei Hauptarten des Reverse Engineering. Im ersten Fall liegt der Quellcode der Software bereits vor, aber es werden übergeordnete Aspekte des Programms entdeckt, die vielleicht schlecht dokumentiert oder dokumentiert, aber nicht mehr gültig sind. Im zweiten Fall ist kein Quellcode für die Software verfügbar und alle Bemühungen, einen möglichen Quellcode für die Software zu finden, werden als Reverse Engineering angesehen. Die zweite Verwendung des Begriffs ist den meisten Menschen bekannter. Reverse Engineering von Software kann die Reinraum-Design- Technik nutzen, um Urheberrechtsverletzungen zu vermeiden.

In diesem Zusammenhang haben Black-Box-Tests im Software-Engineering viel mit Reverse Engineering gemeinsam. Der Tester hat normalerweise die API , hat aber das Ziel, Fehler und undokumentierte Funktionen zu finden, indem er das Produkt von außen angreift.

Weitere Zwecke des Reverse Engineering sind Sicherheitsüberprüfungen, Aufhebung des Kopierschutzes („ Cracking “), Umgehung von Zugriffsbeschränkungen, die häufig in der Unterhaltungselektronik vorhanden sind , Individualisierung eingebetteter Systeme (z zusätzliche Funktionen auf kostengünstiger "krüppeliger" Hardware (wie einige Chipsätze von Grafikkarten) oder auch nur die Befriedigung der Neugier.

Binäre Software

Binäres Reverse Engineering wird durchgeführt, wenn der Quellcode für eine Software nicht verfügbar ist. Dieser Prozess wird manchmal als Reverse Code Engineering oder RCE bezeichnet. Beispielsweise kann die Dekompilierung von Binärdateien für die Java-Plattform mithilfe von Jad erreicht werden. Ein berühmter Fall von Reverse Engineering war die erste Nicht- IBM- Implementierung des PC- BIOS , die die historische IBM-PC-kompatible Industrie hervorbrachte , die seit vielen Jahren die überwältigend dominierende Computerhardware- Plattform war. Reverse Engineering von Software ist in den USA durch die Fair-Use- Ausnahme im Urheberrecht geschützt . Die Samba-Software , die es Systemen ohne Microsoft Windows- Systeme ermöglicht, Dateien mit Systemen zu teilen, auf denen sie ausgeführt wird, ist ein klassisches Beispiel für Software-Reverse Engineering, da das Samba-Projekt unveröffentlichte Informationen über die Funktionsweise der Windows-Dateifreigabe zurückentwickeln musste, damit Nicht-Windows-Computer könnten es emulieren. Das Wine- Projekt macht dasselbe für die Windows-API , und OpenOffice.org ist eine Partei, die dies für die Microsoft Office- Dateiformate tut . Das ReactOS- Projekt ist in seinen Zielen noch ehrgeiziger, indem es sich bemüht, Binärkompatibilität (ABI und API) mit den aktuellen Windows-Betriebssystemen des NT-Zweigs bereitzustellen, wodurch für Windows geschriebene Software und Treiber auf einem Reinraum-Reverse-Engineering ausgeführt werden können Freie Software ( GPL ) Gegenstück. WindowsSCOPE ermöglicht das Reverse-Engineering des gesamten Inhalts des Live-Speichers eines Windows-Systems, einschließlich eines grafischen Reverse-Engineerings aller laufenden Prozesse auf Binärebene.

Ein weiteres klassisches, wenn auch nicht bekanntes Beispiel ist, dass Bell Laboratories 1987 das Mac OS System 4.1, das ursprünglich auf dem Apple Macintosh SE lief , zurückentwickelte , damit es auf eigenen RISC-Rechnern laufen konnte.

Binäre Softwaretechniken

Reverse Engineering von Software kann durch verschiedene Methoden erreicht werden. Die drei Hauptgruppen des Software Reverse Engineering sind

  1. Analyse durch Beobachtung des Informationsaustauschs, am weitesten verbreitet beim Protokoll-Reverse Engineering, das die Verwendung von Busanalysatoren und Paket-Sniffern beinhaltet , wie zum Beispiel für den Zugriff auf einen Computerbus oder eine Computernetzwerkverbindung und das Aufdecken der darauf befindlichen Verkehrsdaten. Das Bus- oder Netzwerkverhalten kann dann analysiert werden, um eine eigenständige Implementierung zu erzeugen, die dieses Verhalten nachahmt. Das ist besonders nützlich für das Reverse Engineering von Gerätetreibern . Manchmal wird das Reverse Engineering auf eingebetteten Systemen durch vom Hersteller bewusst eingeführte Tools wie JTAG- Ports oder andere Debugging-Mittel stark unterstützt . Unter Microsoft Windows sind Low-Level-Debugger wie SoftICE beliebt.
  2. Disassemblierung mit einem Disassembler , dh die rohe Maschinensprache des Programms wird nur mit Hilfe der maschinensprachlichen Mnemonik in ihren eigenen Begriffen gelesen und verstanden . Es funktioniert auf jedem Computerprogramm, kann aber einige Zeit in Anspruch nehmen, insbesondere für diejenigen, die nicht an Maschinencode gewöhnt sind. Der Interactive Disassembler ist ein besonders beliebtes Werkzeug.
  3. Dekompilierung mit einem Decompiler , einem Prozess, der mit unterschiedlichen Ergebnissen versucht, den Quellcode in einer Hochsprache für ein Programm neu zu erstellen, das nur in Maschinencode oder Bytecode verfügbar ist .

Softwareklassifizierung

Softwareklassifizierung ist der Prozess zum Identifizieren von Ähnlichkeiten zwischen verschiedenen Software-Binärdateien (z. B. zwei verschiedene Versionen derselben Binärdatei), die verwendet wird, um Codebeziehungen zwischen Softwarebeispielen zu erkennen. Die Aufgabe wurde traditionell aus mehreren Gründen manuell durchgeführt (z. B. Patch-Analyse zur Erkennung von Schwachstellen und Urheberrechtsverletzungen ), kann aber jetzt für eine große Anzahl von Beispielen etwas automatisch durchgeführt werden.

Diese Methode wird hauptsächlich für lange und gründliche Reverse Engineering-Aufgaben verwendet (vollständige Analyse eines komplexen Algorithmus oder einer großen Software). Im Allgemeinen gilt die statistische Klassifikation als schwieriges Problem, was auch für die Softwareklassifikation gilt, und daher gibt es nur wenige Lösungen/Werkzeuge, die diese Aufgabe gut bewältigen.

Quellcode

Eine Reihe von UML- Tools bezeichnen den Vorgang des Importierens und Analysierens von Quellcode zum Generieren von UML-Diagrammen als "Reverse Engineering". Siehe Liste der UML-Tools .

Obwohl UML ein Ansatz zur Bereitstellung von "Reverse Engineering" ist, haben neuere Fortschritte bei internationalen Standardisierungsaktivitäten zur Entwicklung des Knowledge Discovery Metamodel (KDM) geführt. Der Standard liefert eine Ontologie für die intermediäre (oder abstrahierte) Darstellung von Programmiersprachenkonstrukten und deren Zusammenhängen. Als Standard der Object Management Group (auf dem Weg zu einem ISO-Standard) hat KDM mit der Entwicklung von Tools und Analyseumgebungen, die die Extraktion und Analyse von Quell-, Binär- und Bytecode ermöglichen, begonnen, in der Industrie Fuß zu fassen. Für die Quellcodeanalyse ermöglicht die granulare Standardarchitektur von KDM die Extraktion von Softwaresystemflüssen (Daten-, Kontroll- und Anrufzuordnungen), Architekturen und Kenntnissen der Geschäftsschicht (Regeln, Begriffe und Prozesse). Der Standard ermöglicht die Verwendung eines gemeinsamen Datenformats (XMI), das die Korrelation der verschiedenen Schichten des Systemwissens für detaillierte Analysen (wie Ursachen, Auswirkungen) oder abgeleitete Analysen (wie Extraktion von Geschäftsprozessen) ermöglicht. Obwohl die Bemühungen, Sprachkonstrukte darzustellen, aufgrund der Anzahl von Sprachen, der kontinuierlichen Entwicklung von Softwaresprachen und der Entwicklung neuer Sprachen endlos sein können, erlaubt der Standard die Verwendung von Erweiterungen, um das breite Sprachspektrum zu unterstützen sowie Evolution. KDM ist mit UML, BPMN, RDF und anderen Standards kompatibel, was die Migration in andere Umgebungen ermöglicht und somit Systemwissen für Bemühungen wie Softwaresystemtransformation und Unternehmensanalyse der Business-Schicht nutzt.

Protokolle

Protokolle sind Sätze von Regeln , die Nachrichtenformate beschreiben und wie Nachrichten ausgetauscht: die Protokollzustandsmaschine . Dementsprechend kann das Problem des Protokoll-Reverse-Engineering in zwei Teilprobleme unterteilt werden: Nachrichtenformat und State-Machine-Reverse-Engineering.

Die Nachrichtenformate wurden traditionell durch einen langwierigen manuellen Prozess rückentwickelt, der eine Analyse der Art und Weise beinhaltete, wie Protokollimplementierungen Nachrichten verarbeiten, aber neuere Forschungen schlugen eine Reihe automatischer Lösungen vor. Typischerweise gruppieren die automatischen Ansätze Beobachtungsnachrichten in Clustern, indem sie verschiedene Clusteranalysen verwenden , oder sie emulieren die Protokollimplementierung, die die Nachrichtenverarbeitung verfolgt.

Es gab weniger Arbeit am Reverse-Engineering von Zustandsmaschinen von Protokollen. Im Allgemeinen können die Protokoll-Zustandsmaschinen entweder durch einen Prozess des Offline-Lernens erlernt werden , der die Kommunikation passiv beobachtet und versucht, die allgemeinste Zustandsmaschine aufzubauen, die alle beobachteten Nachrichtensequenzen akzeptiert, oder durch Online-Lernen , das eine interaktive Generierung von Sondierungen ermöglicht Nachrichtensequenzen und das Abhören von Antworten auf diese Sondierungssequenzen. Im Allgemeinen ist das Offline-Lernen kleiner Zustandsmaschinen als NP-vollständig bekannt , aber das Online-Lernen kann in polynomieller Zeit erfolgen. Ein automatischer Offline-Ansatz wurde von Comparetti et al. und ein Online-Ansatz von Cho et al.

Andere Komponenten typischer Protokolle, wie Verschlüsselungs- und Hash-Funktionen, können ebenfalls automatisch nachgebaut werden. Typischerweise verfolgen die automatischen Ansätze die Ausführung von Protokollimplementierungen und versuchen, Puffer im Speicher zu erkennen, die unverschlüsselte Pakete enthalten.

Integrierte Schaltkreise/Smartcards

Reverse Engineering ist eine invasive und destruktive Form der Analyse einer Smartcard . Der Angreifer ätzt die Chipkarte mit Chemikalien Schicht für Schicht weg und macht Bilder mit einem Rasterelektronenmikroskop (REM). Diese Technik kann den kompletten Hardware- und Softwareteil der Smartcard aufdecken. Das Hauptproblem für den Angreifer besteht darin, alles in die richtige Reihenfolge zu bringen, um herauszufinden, wie alles funktioniert. Die Hersteller der Karte versuchen, Tasten und Bedienvorgänge durch Vertauschen von Speicherpositionen, beispielsweise durch Bus-Scrambling, zu verbergen.

In manchen Fällen ist es sogar möglich, eine Sonde anzuschließen, um Spannungen zu messen, während die Chipkarte noch betriebsbereit ist. Die Hersteller der Karte setzen Sensoren ein, um diesen Angriff zu erkennen und zu verhindern. Dieser Angriff ist nicht sehr verbreitet, da er sowohl einen hohen Aufwand an Aufwand erfordert als auch eine spezielle Ausrüstung, die im Allgemeinen nur großen Chipherstellern zur Verfügung steht. Darüber hinaus ist der Nutzen dieses Angriffs gering, da häufig andere Sicherheitstechniken wie Schattenkonten verwendet werden. Ob Angriffe auf Chip- und PIN-Karten, um Verschlüsselungsdaten zu replizieren und dann PINs zu knacken, einen kostengünstigen Angriff auf die Multifaktor-Authentifizierung darstellen, ist noch ungewiss.

Das vollständige Reverse Engineering erfolgt in mehreren Hauptschritten.

Der erste Schritt, nachdem Bilder mit einem REM aufgenommen wurden, ist das Zusammenfügen der Bilder, was notwendig ist, da nicht jede Schicht mit einer einzigen Aufnahme erfasst werden kann. Ein SEM muss über den Bereich der Schaltung streichen und mehrere hundert Bilder aufnehmen, um die gesamte Schicht abzudecken. Die Bildzusammenfügung nimmt als Eingabe mehrere hundert Bilder und gibt ein einzelnes, richtig überlapptes Bild der gesamten Ebene aus.

Als nächstes müssen die zusammengefügten Schichten ausgerichtet werden, da die Probe nach dem Ätzen nicht jedes Mal in die exakt gleiche Position relativ zum REM gebracht werden kann. Daher überlappen sich die genähten Versionen nicht wie auf der realen Schaltung in der richtigen Weise. Üblicherweise werden drei entsprechende Punkte ausgewählt und darauf basierend eine Transformation angewendet.

Um die Schaltungsstruktur zu extrahieren, müssen die ausgerichteten, zusammengefügten Bilder segmentiert werden, wodurch die wichtigen Schaltungen hervorgehoben und vom uninteressanten Hintergrund und isolierenden Materialien getrennt werden.

Schließlich können die Drähte von einer Schicht zur nächsten verfolgt und die Netzliste der Schaltung, die alle Informationen der Schaltung enthält, rekonstruiert werden.

Militärische Anwendungen

Reverse Engineering wird oft von Menschen verwendet, um Technologien, Geräte oder Informationen anderer Nationen zu kopieren, die von regulären Truppen auf den Feldern oder durch Geheimdienstoperationen erlangt wurden . Es wurde oft während des Zweiten Weltkriegs und des Kalten Krieges verwendet . Hier sind bekannte Beispiele aus dem Zweiten Weltkrieg und später:

  • Jerry kann : britische und amerikanische Streitkräfte in WW2 bemerkt , dass die Deutschen Benzinkanister mit einem ausgezeichneten Design hatten. Sie rekonstruierten Kopien dieser Dosen, die im Volksmund als "Kanister" bekannt waren.
  • Panzerschreck : Die Deutschen erbeuteten während des Zweiten Weltkriegs eine amerikanische Panzerfaust und konstruierten sie um, um den größeren Panzerschreck zu schaffen.
  • Tupolev Tu-4 : 1944 mussten drei amerikanische B-29- Bomber auf Missionen über Japan in der Sowjetunion landen . Die Sowjets, die keinen ähnlichen strategischen Bomber hatten, beschlossen, die B-29 zu kopieren. Innerhalb von drei Jahren hatten sie mit der Tu-4 eine nahezu perfekte Kopie entwickelt.
  • SCR-584-Radar : Nach dem Zweiten Weltkrieg von der Sowjetunion kopiert, ist es für einige Modifikationen bekannt - СЦР-584, Бинокль-Д.
  • V-2- Rakete: Technische Dokumente für die V-2 und verwandte Technologien wurden am Ende des Krieges von den westlichen Alliierten erbeutet. Die Amerikaner konzentrierten ihre Reverse-Engineering-Bemühungen auf die Operation Paperclip , die zur Entwicklung der PGM-11 Redstone- Rakete führte. Die Sowjets verwendeten gefangene deutsche Ingenieure, um technische Dokumente und Pläne zu reproduzieren, und arbeiteten mit erbeuteter Hardware, um ihren Klon der Rakete, die R-1 , herzustellen . Damit begann das sowjetische Raketenprogramm der Nachkriegszeit, das zur R-7 und zum Beginn des Weltraumrennens führte .
  • Eine K-13/R-3S- Rakete ( NATO-Berichtsname AA-2 Atoll), eine sowjetische nachgebaute Kopie der AIM-9 Sidewinder , wurde möglich, nachdem eine taiwanesische AIM-9B im September eine chinesische MiG-17 getroffen hatte, ohne zu explodieren 1958. Die Rakete wurde in der Flugzeugzelle untergebracht, und der Pilot kehrte mit einem Universitätskurs in Raketenentwicklung, den sowjetische Wissenschaftler beschreiben würden, zur Basis zurück.
  • BGM-71 TOW- Rakete: Im Mai 1975 kamen die Verhandlungen zwischen dem Iran und Hughes Missile Systems über die Koproduktion der TOW- und Maverick-Raketen aufgrund von Meinungsverschiedenheiten in der Preisstruktur ins Stocken, die anschließende Revolution von 1979 beendete alle Pläne für eine solche Koproduktion. Der Iran war später erfolgreich beim Reverse-Engineering der Rakete und produziert jetzt seine eigene Kopie, die Toophan .
  • China hat viele Beispiele westlicher und russischer Hardware umgekehrt entwickelt , von Kampfflugzeugen über Raketen bis hin zu HMMWV- Autos, wie die MiG-15 (die zur J-7) und die Su-33 (die zur J-15 wurde). Neuere Analysen des militärischen Wachstums Chinas haben auf die inhärenten Grenzen des Reverse Engineering für fortschrittliche Waffensysteme hingewiesen.
  • Während des Zweiten Weltkriegs untersuchten polnische und britische Kryptographen erbeutete deutsche " Enigma "-Nachrichtenverschlüsselungsmaschinen auf Schwachstellen. Ihre Operation wurde dann auf elektromechanischen Geräten, " Bomben " , simuliert , die alle möglichen Scrambler-Einstellungen der "Enigma"-Maschinen ausprobierten, die halfen das Brechen von verschlüsselten Nachrichten, die von den Deutschen gesendet wurden.
  • Auch während des Zweiten Weltkriegs analysierten und besiegten britische Wissenschaftler eine Reihe von immer ausgeklügelteren Funknavigationssystemen, die von der Luftwaffe verwendet wurden , um nachts geführte Bombenangriffe durchzuführen. Die britischen Gegenmaßnahmen gegen das System waren so effektiv, dass in einigen Fällen deutsche Flugzeuge durch Signale zur Landung auf RAF- Stützpunkten geleitet wurden, da sie glaubten, auf deutsches Territorium zurückgekehrt zu sein.

Gennetzwerke

Reverse Engineering-Konzepte wurden auch auf die Biologie angewendet , insbesondere auf die Aufgabe, die Struktur und Funktion von Genregulationsnetzwerken zu verstehen . Sie regulieren fast jeden Aspekt des biologischen Verhaltens und ermöglichen es den Zellen, physiologische Prozesse und Reaktionen auf Störungen durchzuführen. Das Verständnis der Struktur und des dynamischen Verhaltens von Gennetzwerken ist daher eine der größten Herausforderungen der Systembiologie mit unmittelbaren praktischen Auswirkungen auf mehrere Anwendungen, die über die Grundlagenforschung hinausgehen. Es gibt mehrere Methoden zum Reverse Engineering von Genregulationsnetzwerken unter Verwendung molekularbiologischer und datenwissenschaftlicher Methoden. Sie wurden im Allgemeinen in sechs Klassen eingeteilt:

Die sechs Klassen von Gennetzwerk-Inferenzmethoden nach
  • Koexpressionsverfahren basieren auf der Vorstellung, dass, wenn zwei Gene ein ähnliches Expressionsprofil aufweisen, sie verwandt sein können, obwohl aus der Koexpression einfach keine Kausalität abgeleitet werden kann.
  • Sequenzmotivverfahren analysieren Genpromotoren, um spezifische Transkriptionsfaktor-Bindungsdomänen zu finden. Wenn vorhergesagt wird, dass ein Transkriptionsfaktor einen Promotor eines spezifischen Gens bindet, kann eine regulatorische Verbindung vermutet werden.
  • Chromatin ImmunoPrecipitation (ChIP)-Methoden untersuchen das genomweite Profil der DNA-Bindung ausgewählter Transkriptionsfaktoren, um deren nachgeschaltete Gennetzwerke abzuleiten.
  • Orthologische Methoden übertragen das Wissen über das Gennetzwerk von einer Spezies auf eine andere.
  • Literaturmethoden implementieren Text Mining und manuelle Recherche, um mutmaßliche oder experimentell nachgewiesene Gennetzwerkverbindungen zu identifizieren.
  • Transkriptionelle Komplexverfahren nutzen Informationen über Protein-Protein-Interaktionen zwischen Transkriptionsfaktoren und erweitern so das Konzept von Gennetzwerken um transkriptionale regulatorische Komplexe.

Die Zuverlässigkeit von Gennetzwerken wird häufig durch genetische Störungsexperimente gefolgt von dynamischer Modellierung getestet, basierend auf dem Prinzip, dass das Entfernen eines Netzwerkknotens vorhersagbare Auswirkungen auf die Funktion der verbleibenden Knoten des Netzwerks hat. Die Anwendungen des Reverse Engineering von Gennetzwerken reichen vom Verständnis der Mechanismen der Pflanzenphysiologie bis hin zur Hervorhebung neuer Angriffspunkte für die Krebstherapie.

Überschneidung mit Patentrecht

Reverse Engineering bezieht sich in erster Linie auf das Verständnis eines Prozesses oder Artefakts, bei dem die Art seiner Konstruktion, Verwendung oder internen Prozesse von seinem Ersteller nicht klargestellt wurden.

Patentierte Gegenstände müssen für die Untersuchung nicht selbst zurückentwickelt werden, denn das Wesen eines Patents besteht darin, dass Erfinder selbst eine detaillierte Offenlegung vornehmen und im Gegenzug einen rechtlichen Schutz der betreffenden Erfindung erhalten . Ein unter einem oder mehreren Patenten hergestellter Artikel kann jedoch auch andere Technologien enthalten, die nicht patentiert und nicht offenbart sind. Tatsächlich besteht eine häufige Motivation des Reverse Engineering darin, festzustellen, ob das Produkt eines Wettbewerbers eine Patentverletzung oder eine Urheberrechtsverletzung enthält .

Rechtmäßigkeit

Vereinigte Staaten

Selbst wenn ein Artefakt oder Prozess durch Geschäftsgeheimnisse geschützt ist, ist in den Vereinigten Staaten das Reverse-Engineering des Artefakts oder Prozesses oft rechtmäßig, wenn es rechtmäßig erworben wurde.

Das Reverse Engineering von Computersoftware fällt häufig sowohl unter das Vertragsrecht als Vertragsbruch als auch unter alle anderen relevanten Gesetze. Dies liegt daran, dass die meisten Endbenutzer-Lizenzvereinbarungen dies ausdrücklich verbieten und US-Gerichte entschieden haben, dass das Vorhandensein solcher Bedingungen das Urheberrechtsgesetz außer Kraft setzt, das dies ausdrücklich erlaubt (siehe Bowers gegen Baystate Technologies ). Gemäß Abschnitt 103(f) des Digital Millennium Copyright Act ( 17 USC § 1201 (f) ) kann eine Person, die im rechtmäßigen Besitz eines Programms ist, seinen Schutz zurückentwickeln und umgehen, wenn dies erforderlich ist, um „Interoperabilität“ zu erreichen, a Begriff, der im Großen und Ganzen andere Geräte und Programme umfasst, die mit ihm interagieren, ihn nutzen und Daten auf nützliche Weise verwenden und von ihm übertragen können. Es gibt eine begrenzte Ausnahme, die es ermöglicht, das so gewonnene Wissen zu teilen und für Interoperabilitätszwecke zu verwenden.

europäische Union

Die EU-Richtlinie 2009/24 zum rechtlichen Schutz von Computerprogrammen, die eine frühere Richtlinie (1991) ablöste, regelt das Reverse Engineering in der Europäischen Union .

Siehe auch

Verweise

Quellen