Reverse Engineering
MachinesEdit
Mit der zunehmenden Beliebtheit von computergestütztem Design (CAD) ist Reverse Engineering zu einer praktikablen Methode geworden, um ein virtuelles 3D-Modell eines vorhandenen physischen Teils für die Verwendung in 3D-CAD, CAM, CAE oder anderer Software zu erstellen. Bei der Flächenrückführung wird ein Objekt gemessen und anschließend als 3D-Modell rekonstruiert. Das physische Objekt kann mit 3D-Scantechnologien wie CMMs, Laserscannern, Digitalisierern mit strukturiertem Licht oder industriellen CT-Scans (Computertomographie) gemessen werden. Den gemessenen Daten allein, die in der Regel als Punktwolke dargestellt werden, fehlen die topologischen Informationen und die Konstruktionsabsicht. Ersteres kann durch Konvertierung der Punktwolke in ein dreieckiges Netz wiederhergestellt werden. Das Reverse Engineering zielt darauf ab, über die Erstellung eines solchen Netzes hinauszugehen und die Konstruktionsabsicht in Form von einfachen analytischen Flächen (Ebenen, Zylinder usw.) sowie möglicherweise NURBS-Flächen wiederherzustellen, um ein CAD-Modell mit Randdarstellung zu erzeugen. Die Wiederherstellung eines solchen Modells ermöglicht es, ein Design zu modifizieren, um neuen Anforderungen gerecht zu werden, einen Fertigungsplan zu erstellen usw.
Hybrid-Modellierung ist ein häufig verwendeter Begriff, wenn NURBS- und parametrische Modellierung zusammen implementiert werden. Die Kombination von geometrischen und Freiformflächen kann eine leistungsfähige Methode der 3D-Modellierung darstellen. Bereiche von Freiformdaten können mit exakten geometrischen Flächen kombiniert werden, um ein Hybridmodell zu erstellen. Ein typisches Beispiel hierfür wäre das Reverse Engineering eines Zylinderkopfes, das Freiform-Gussmerkmale wie Wassermäntel und hochtolerante bearbeitete Bereiche enthält.
Reverse Engineering wird auch von Unternehmen eingesetzt, um vorhandene physische Geometrie in digitale Produktentwicklungsumgebungen zu bringen, eine digitale 3D-Aufzeichnung der eigenen Produkte zu erstellen oder die Produkte von Wettbewerbern zu bewerten. Es wird verwendet, um zu analysieren, wie ein Produkt funktioniert, was es leistet, welche Komponenten es hat; um Kosten abzuschätzen; um potenzielle Patentverletzungen zu identifizieren usw.
Value Engineering, eine verwandte Aktivität, die ebenfalls von Unternehmen genutzt wird, beinhaltet das Zerlegen und Analysieren von Produkten. Das Ziel ist jedoch, Möglichkeiten zur Kostensenkung zu finden.
SoftwareEdit
Das Institute of Electrical and Electronics Engineers (IEEE) definierte 1990 (Software) Reverse Engineering (SRE) als „den Prozess der Analyse eines Objektsystems, um die Komponenten des Systems und ihre Beziehungen untereinander zu identifizieren und um Darstellungen des Systems in einer anderen Form oder auf einer höheren Abstraktionsebene zu erstellen“, wobei das „Objektsystem“ das Endprodukt der Softwareentwicklung ist. Reverse Engineering ist ein reiner Untersuchungsprozess, bei dem das betrachtete Softwaresystem nicht verändert wird, was sonst ein Re-Engineering oder eine Restrukturierung wäre. Reverse Engineering kann von jeder Stufe des Produktzyklus aus durchgeführt werden, nicht notwendigerweise vom funktionalen Endprodukt.
Es gibt zwei Komponenten beim Reverse Engineering: Redokumentation und Design Recovery. Redokumentation ist die Erstellung einer neuen Darstellung des Computercodes, so dass er leichter zu verstehen ist. In der Zwischenzeit ist die Wiederherstellung des Designs die Verwendung von Deduktion oder Schlussfolgerungen aus allgemeinem Wissen oder persönlicher Erfahrung mit dem Produkt, um die Funktionalität des Produkts vollständig zu verstehen. Man kann es auch als „Rückwärtsgehen durch den Entwicklungszyklus“ sehen. In diesem Modell wird der Output der Implementierungsphase (in Form von Quellcode) in einer Umkehrung des traditionellen Wasserfallmodells zurück in die Analysephase geleitet. Ein anderer Begriff für diese Technik ist Programmverstehen. Die Working Conference on Reverse Engineering (WCRE) wird jährlich abgehalten, um die Techniken des Reverse Engineering zu erforschen und zu erweitern. Computergestütztes Software-Engineering (CASE) und automatisierte Codegenerierung haben einen großen Beitrag zum Reverse Engineering geleistet.
Software-Anti-Manipulationstechniken wie Obfuskation werden eingesetzt, um sowohl Reverse Engineering als auch Re-Engineering von proprietärer Software und softwaregesteuerten Systemen zu verhindern. In der Praxis lassen sich zwei Hauptarten von Reverse Engineering unterscheiden. Im ersten Fall ist der Quellcode der Software bereits vorhanden, aber es werden übergeordnete Aspekte des Programms entdeckt, die vielleicht schlecht oder gar nicht mehr dokumentiert 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 entdecken, werden als Reverse Engineering betrachtet. Die zweite Verwendung des Begriffs ist den meisten Menschen vertrauter. Beim Reverse Engineering von Software kann die Technik des Reinraumdesigns genutzt werden, um Urheberrechtsverletzungen zu vermeiden.
In diesem Zusammenhang hat das Black-Box-Testen in der Softwareentwicklung viel mit dem Reverse Engineering gemeinsam. Der Tester verfügt in der Regel über die API, hat aber das Ziel, Bugs und undokumentierte Features zu finden, indem er das Produkt von außen basht.
Andere Zwecke des Reverse Engineering sind z.B. Sicherheitsaudits, das Entfernen des Kopierschutzes („Cracken“), das Umgehen von Zugriffsbeschränkungen, die oft in der Unterhaltungselektronik vorhanden sind, das Anpassen von eingebetteten Systemen (z.B. Motormanagementsysteme), Reparaturen oder Nachrüstungen im eigenen Haus, das Aktivieren zusätzlicher Funktionen auf preiswerter „verkrüppelter“ Hardware (z.B. einige Grafikkarten-Chipsätze) oder auch die reine Befriedigung der Neugier.
Binäres SoftwareEditieren
Binäres Reverse Engineering wird durchgeführt, wenn der Quellcode einer Software nicht verfügbar ist. Dieser Vorgang wird manchmal auch als Reverse Code Engineering oder RCE bezeichnet. Zum Beispiel kann die Dekompilierung von Binärdateien für die Java-Plattform mit Jad durchgeführt werden. Ein berühmter Fall von Reverse Engineering war die erste Nicht-IBM-Implementierung des PC-BIOS, die die historische IBM-PC-kompatible Industrie ins Leben rief, die seit vielen Jahren die überwältigend dominierende Computer-Hardware-Plattform ist. Reverse Engineering von Software ist in den USA durch die Fair-Use-Ausnahme im Urheberrecht geschützt. Die Samba-Software, die es Systemen, auf denen kein Microsoft Windows läuft, ermöglicht, Dateien mit Systemen auszutauschen, auf denen es läuft, ist ein klassisches Beispiel für Software-Reverse-Engineering, da das Samba-Projekt unveröffentlichte Informationen darüber, wie die Windows-Dateifreigabe funktioniert, zurückentwickeln musste, damit Nicht-Windows-Computer sie emulieren konnten. Das Wine Projekt macht dasselbe für die Windows API, und OpenOffice.org ist eine Partei, die das für die Microsoft Office Dateiformate macht. Das ReactOS-Projekt ist sogar noch ehrgeiziger in seinen Zielen, indem es eine binäre (ABI und API) Kompatibilität mit den aktuellen Windows-Betriebssystemen des NT-Zweiges anstrebt, die es ermöglicht, für Windows geschriebene Software und Treiber auf einem sauberen, rückwärts entwickelten Gegenstück aus freier Software (GPL) laufen zu lassen. WindowsSCOPE ermöglicht das Reverse-Engineering des gesamten Inhalts des Livespeichers eines Windows-Systems, einschließlich eines grafischen Reverse-Engineerings aller laufenden Prozesse auf binärer Ebene.
Ein weiteres klassisches, wenn auch nicht sehr bekanntes Beispiel ist, dass die Bell Laboratories 1987 das Mac OS System 4.1, das ursprünglich auf dem Apple Macintosh SE lief, reverse-engineered haben, um es auf ihren eigenen RISC-Maschinen ausführen zu können.
Binäre Softwaretechniken
Das Reverse Engineering von Software kann mit verschiedenen Methoden durchgeführt werden.
- Analyse durch Beobachtung des Informationsaustauschs, am häufigsten beim Protokoll-Reverse-Engineering, bei dem Bus-Analysatoren und Packet-Sniffer eingesetzt werden, um z. B. auf einen Computer-Bus oder eine Computer-Netzwerkverbindung zuzugreifen und die darauf befindlichen Verkehrsdaten aufzudecken. Das Bus- oder Netzwerkverhalten kann dann analysiert werden, um eine eigenständige Implementierung zu erstellen, 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 absichtlich eingeführte Tools wie JTAG-Ports oder andere Debugging-Mittel stark unterstützt. Unter Microsoft Windows sind Low-Level-Debugger wie SoftICE sehr beliebt.
- Disassemblierung mit einem Disassembler, d. h. die rohe Maschinensprache des Programms wird nur mit Hilfe von maschinensprachlichen Mnemonics gelesen und in ihrer Bedeutung verstanden. Es funktioniert bei jedem Computerprogramm, kann aber ziemlich viel Zeit in Anspruch nehmen, besonders für diejenigen, die nicht an Maschinencode gewöhnt sind. Der Interaktive Disassembler ist ein besonders beliebtes Werkzeug.
- Dekompilierung mit einem Dekompiler, ein Prozess, der mit unterschiedlichen Ergebnissen versucht, den Quellcode in einer Hochsprache für ein Programm, das nur in Maschinencode oder Bytecode vorliegt, neu zu erstellen.
Software-KlassifikationBearbeiten
Software-Klassifikation ist der Prozess der Identifizierung von Ähnlichkeiten zwischen verschiedenen Software-Binärdateien (z. B. zwei verschiedene Versionen derselben Binärdatei), der verwendet wird, um Code-Beziehungen zwischen Software-Mustern zu erkennen. Diese Aufgabe wurde traditionell aus verschiedenen 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 Samples einigermaßen automatisch durchgeführt werden.
Diese Methode wird vor allem für lange und gründliche Reverse-Engineering-Aufgaben (vollständige Analyse eines komplexen Algorithmus oder großen Stücks Software) verwendet. Im Allgemeinen gilt die statistische Klassifikation als schwieriges Problem, was auch für die Software-Klassifikation gilt, und so gibt es nur wenige Lösungen/Werkzeuge, die diese Aufgabe gut bewältigen.
SourcecodeEdit
Eine Reihe von UML-Werkzeugen bezeichnet den Prozess des Importierens und Analysierens von Quellcode zur Erzeugung von UML-Diagrammen als „Reverse Engineering.“ Siehe Liste der UML-Tools.
Obwohl UML ein Ansatz für „Reverse Engineering“ ist, haben neuere Fortschritte in der internationalen Standardisierungsarbeit 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 Beziehungen untereinander. Als Standard der Object Management Group (auf dem Weg, auch ein ISO-Standard zu werden) hat KDM begonnen, sich in der Industrie mit der Entwicklung von Tools und Analyseumgebungen durchzusetzen, die die Extraktion und Analyse von Quell-, Binär- und Bytecode ermöglichen. Für die Quellcode-Analyse ermöglicht die granulare Architektur des Standards KDM die Extraktion von Software-Systemflüssen (Daten-, Kontroll- und Call-Maps), Architekturen und Wissen der Geschäftsebene (Regeln, Begriffe und Prozesse). Der Standard ermöglicht die Verwendung eines gemeinsamen Datenformats (XMI), das die Korrelation der verschiedenen Schichten des Systemwissens entweder für detaillierte Analysen (z. B. Ursachenforschung, Auswirkungen) oder abgeleitete Analysen (z. B. Extraktion von Geschäftsprozessen) ermöglicht. Obwohl die Bemühungen um die Darstellung von Sprachkonstrukten aufgrund der Anzahl der Sprachen, der kontinuierlichen Weiterentwicklung von Softwaresprachen und der Entwicklung neuer Sprachen unendlich sein können, ermöglicht der Standard die Verwendung von Erweiterungen zur Unterstützung des breiten Sprachsets sowie der Weiterentwicklung. KDM ist kompatibel mit UML, BPMN, RDF und anderen Standards, was die Migration in andere Umgebungen ermöglicht und damit die Nutzung von Systemwissen für Bestrebungen wie die Transformation von Softwaresystemen und die Analyse der Geschäftsebene von Unternehmen.
ProtokolleBearbeiten
Protokolle sind Regelsätze, die Nachrichtenformate und den Austausch von Nachrichten beschreiben: der Protokoll-Zustandsautomat. Dementsprechend kann das Problem des Reverse-Engineering von Protokollen in zwei Teilprobleme unterteilt werden: das Nachrichtenformat und das Reverse-Engineering des Zustandsautomaten.
Die Nachrichtenformate wurden traditionell durch einen langwierigen manuellen Prozess zurückentwickelt, der die 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 beobachtete Nachrichten in Clustern, indem sie verschiedene Clustering-Analysen verwenden, oder sie emulieren die Protokollimplementierung, die die Nachrichtenverarbeitung nachverfolgt.
Es gab weniger Arbeiten zum Reverse-Engineering von State-Machines von Protokollen. Im Allgemeinen können die State-Machines von Protokollen entweder durch einen Prozess des Offline-Lernens erlernt werden, bei dem die Kommunikation passiv beobachtet wird und versucht wird, die allgemeinste State-Machine zu bauen, die alle beobachteten Sequenzen von Nachrichten akzeptiert, oder durch Online-Lernen, das die interaktive Erzeugung von Sondierungssequenzen von Nachrichten und das Abhören der Antworten auf diese Sondierungssequenzen ermöglicht. Im Allgemeinen ist das Offline-Lernen von kleinen State-Machines bekanntlich NP-komplett, aber das Online-Lernen kann in polynomieller Zeit durchgeführt werden. Ein automatischer Offline-Ansatz wurde von Comparetti et al. und ein Online-Ansatz von Cho et al. demonstriert.
Auch andere Komponenten typischer Protokolle, wie Verschlüsselungs- und Hash-Funktionen, können automatisch reverse-engineered werden. Typischerweise verfolgen die automatischen Ansätze die Ausführung von Protokollimplementierungen und versuchen, Puffer im Speicher aufzuspüren, die unverschlüsselte Pakete enthalten.
Integrierte Schaltkreise/Smart CardsEdit
Reverse Engineering ist eine invasive und zerstörerische Form der Analyse einer Smart Card. Der Angreifer verwendet Chemikalien, um Schicht für Schicht der Smartcard wegzuätzen, und macht Bilder mit einem Rasterelektronenmikroskop (SEM). Diese Technik kann den kompletten Hard- und Softwareteil der Smartcard offenlegen. 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, Schlüssel und Operationen zu verstecken, indem sie Speicherpositionen vertauschen, z. B. durch Bus-Scrambling.
In einigen Fällen ist es sogar möglich, eine Sonde anzubringen, um Spannungen zu messen, während die Smartcard noch in Betrieb 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 großen Aufwand als auch spezielle Ausrüstung erfordert, die in der Regel nur großen Chip-Herstellern zur Verfügung steht. Außerdem ist der Gewinn aus diesem Angriff gering, da oft andere Sicherheitstechniken wie Schattenkonten verwendet werden. Es ist noch ungewiss, ob Angriffe auf Chip- und PIN-Karten, um die Verschlüsselungsdaten zu replizieren und dann die PINs zu knacken, einen kosteneffektiven Angriff auf die Multifaktor-Authentifizierung darstellen würden.
Das vollständige Reverse Engineering verläuft in mehreren Hauptschritten.
Der erste Schritt, nachdem Bilder mit einem REM aufgenommen wurden, ist das Zusammenfügen der Bilder, was notwendig ist, da jede Schicht nicht mit einer einzigen Aufnahme erfasst werden kann. Ein REM muss über den Bereich des Schaltkreises hinwegfahren und mehrere hundert Bilder aufnehmen, um die gesamte Schicht abzudecken. Das Bildstitching nimmt als Eingabe mehrere hundert Bilder und gibt ein einziges, korrekt überlappendes Bild der kompletten Schicht aus.
Nächstens müssen die gestitchten Schichten ausgerichtet werden, da die Probe nach dem Ätzen nicht jedes Mal in die exakt gleiche Position relativ zum REM gebracht werden kann. Daher werden sich die genähten Versionen nicht in der richtigen Weise überlappen, wie auf der realen Schaltung. In der Regel werden drei korrespondierende Punkte ausgewählt und darauf eine Transformation angewandt.
Um die Schaltungsstruktur zu extrahieren, müssen die ausgerichteten, gestitchten Bilder segmentiert werden, was die wichtigen Schaltkreise hervorhebt und sie vom uninteressanten Hintergrund und den isolierenden Materialien trennt.
Schließlich können die Drähte von einer Schicht zur nächsten verfolgt werden, und die Netzliste der Schaltung, die alle Informationen der Schaltung enthält, kann rekonstruiert werden.
Militärische AnwendungenBearbeiten
Reverse Engineering wird oft verwendet, um Technologien, Geräte oder Informationen anderer Nationen zu kopieren, die von regulären Truppen im Feld oder durch Geheimdienstoperationen erlangt wurden. Es wurde häufig während des Zweiten Weltkriegs und des Kalten Krieges eingesetzt. Hier sind bekannte Beispiele aus dem Zweiten Weltkrieg und später:
- Der Kanister: Britische und amerikanische Streitkräfte bemerkten, dass die Deutschen Benzinkanister mit einem hervorragenden Design hatten. Sie bauten Kopien dieser Dosen nach, die im Volksmund als „Jerry cans“ bekannt wurden.“
- Panzerschreck: Die Deutschen erbeuteten während des Zweiten Weltkriegs eine amerikanische Panzerfaust und bauten sie nach, um den größeren Panzerschreck zu entwickeln.
- Tupolev Tu-4: 1944 wurden drei amerikanische B-29-Bomber bei Einsätzen über Japan zur Landung in der Sowjetunion gezwungen. Die Sowjets, die keinen ähnlichen strategischen Bomber besaßen, beschlossen, die B-29 zu kopieren. Innerhalb von drei Jahren hatten sie die Tu-4 entwickelt, eine fast perfekte Kopie.
- SCR-584-Radar: Nach dem Zweiten Weltkrieg von der Sowjetunion kopiert, ist es mit einigen Modifikationen bekannt – СЦР-584, Бинокль-Д.
- V-2-Rakete: Die technischen Dokumente der V-2 und verwandter Technologien wurden von den westlichen Alliierten am Ende des Krieges erbeutet. Die Amerikaner konzentrierten ihre Reverse-Engineering-Bemühungen über die Operation Paperclip, die zur Entwicklung der PGM-11 Redstone-Rakete führte. Die Sowjets nutzten erbeutete deutsche Ingenieure, um technische Dokumente und Pläne zu reproduzieren und arbeiteten mit erbeuteter Hardware, um ihren Klon der R-1 Rakete zu bauen. So begann das sowjetische Nachkriegs-Raketenprogramm, das zur R-7 und zum Beginn des Weltraumwettlaufs führte.
- Die K-13/R-3S-Rakete (NATO-Berichtsname AA-2 Atoll), eine sowjetische Reverse-Engineering-Kopie der AIM-9 Sidewinder, wurde möglich, nachdem eine taiwanesische AIM-9B im September 1958 eine chinesische MiG-17 traf, ohne zu explodieren. Die Rakete blieb in der Flugzeugzelle stecken, und der Pilot kehrte zur Basis zurück, mit dem, was sowjetische Wissenschaftler als Universitätskurs in der Raketenentwicklung beschreiben würden.
- BGM-71 TOW-Rakete: Im Mai 1975 gerieten die Verhandlungen zwischen dem Iran und Hughes Missile Systems über die Koproduktion der TOW- und Maverick-Raketen wegen Unstimmigkeiten in der Preisstruktur ins Stocken, und die folgende Revolution von 1979 beendete alle Pläne für eine solche Koproduktion. Später gelang dem Iran ein Reverse-Engineering der Rakete und er produziert nun seine eigene Kopie, die Toophan.
- China hat viele Beispiele westlicher und russischer Hardware, von Kampfflugzeugen bis hin zu Raketen und HMMWV-Fahrzeugen, nachgebaut, wie die MiG-15 (die zur J-7 wurde) und die Su-33 (die zur J-15 wurde). Neuere Analysen von Chinas militärischem Wachstum 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. Ihr Betrieb wurde dann auf elektromechanischen Geräten, „Bomben“, simuliert, die alle möglichen Scrambler-Einstellungen der „Enigma“-Maschinen ausprobierten, was das Entschlüsseln von verschlüsselten Nachrichten, die von den Deutschen gesendet worden waren, erleichterte.
- Auch während des Zweiten Weltkriegs analysierten und besiegten britische Wissenschaftler eine Reihe von immer ausgefeilteren Funknavigationssystemen, die von der Luftwaffe verwendet wurden, um geführte Bombeneinsätze bei Nacht 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 veranlasst wurden, da sie glaubten, auf deutsches Gebiet zurückgekehrt zu sein.
GennetzwerkeBearbeiten
Reverse-Engineering-Konzepte wurden auch auf die Biologie angewandt, speziell 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 auszuführen und auf Störungen zu reagieren. Das Verständnis der Struktur und des dynamischen Verhaltens von Gennetzwerken ist daher eine der größten Herausforderungen der Systembiologie, mit unmittelbaren praktischen Auswirkungen in mehreren Anwendungen, die über die Grundlagenforschung hinausgehen.Es gibt mehrere Methoden für das Reverse Engineering von genregulatorischen Netzwerken mit Hilfe von molekularbiologischen und datenwissenschaftlichen Methoden. Sie wurden allgemein in sechs Klassen eingeteilt:
- Koexpressionsmethoden basieren auf der Vorstellung, dass, wenn zwei Gene ein ähnliches Expressionsprofil aufweisen, sie miteinander verwandt sein können, obwohl aus der Koexpression nicht einfach eine Kausalität abgeleitet werden kann.
- Sequenzmotiv-Methoden analysieren Genpromotoren, um spezifische Transkriptionsfaktor-Bindungsdomänen zu finden. Wird vorhergesagt, dass ein Transkriptionsfaktor an den Promotor eines bestimmten Gens bindet, kann ein regulatorischer Zusammenhang vermutet werden.
- Chromatin-Immunpräzipitations-Methoden (ChIP) untersuchen das genomweite Profil der DNA-Bindung ausgewählter Transkriptionsfaktoren, um auf deren nachgeschaltete Gennetzwerke zu schließen.
- Orthologie-Methoden übertragen das Wissen über Gennetzwerke von einer Spezies auf eine andere.
- Literatur-Methoden implementieren Text Mining und manuelle Recherche, um putative oder experimentell nachgewiesene Gennetzwerkverbindungen zu identifizieren.
- Transkriptionskomplexe-Methoden nutzen Informationen über Protein-Protein-Interaktionen zwischen Transkriptionsfaktoren und erweitern so das Konzept der Gennetzwerke um transkriptionelle regulatorische Komplexe.
Oft wird die Zuverlässigkeit von Gennetzwerken durch genetische Störexperimente mit anschließender dynamischer Modellierung getestet, basierend auf dem Prinzip, dass das Entfernen eines Netzwerkknotens vorhersagbare Auswirkungen auf die Funktion der verbleibenden Knoten des Netzwerks hat.
Anwendungen des Reverse Engineering von Gennetzwerken reichen vom Verständnis der Mechanismen der Pflanzenphysiologie bis hin zum Aufzeigen neuer Targets für die Krebstherapie.
Überschneidungen mit dem Patentrecht
Reverse Engineering dient in erster Linie dem Verständnis eines Prozesses oder Artefakts, bei dem die Art und Weise seines Aufbaus, seiner Verwendung oder seiner internen Abläufe von seinem Schöpfer nicht deutlich gemacht wurde.
Patentierte Gegenstände müssen nicht von sich aus reverse-engineered werden, um untersucht zu werden, denn das Wesen eines Patents besteht darin, dass der Erfinder selbst eine detaillierte öffentliche Offenlegung vornimmt und im Gegenzug rechtlichen Schutz für die betreffende Erfindung erhält. Ein Gegenstand, der unter einem oder mehreren Patenten hergestellt wurde, könnte jedoch auch andere Technologie enthalten, die nicht patentiert und nicht offengelegt ist. Tatsächlich ist eine häufige Motivation für Reverse Engineering, festzustellen, ob das Produkt eines Konkurrenten eine Patentverletzung oder eine Verletzung des Urheberrechts enthält.