はじめによんでください

リヴァース・エンジニアリング

Reverse Engineering

池田光穂

☆ リバースエンジニアリング(英語:reverse engineering、逆開発、逆構築、略称:RE、後構造化)とは、既存の完成したシステムや、主に工業的に製造された製品について、その構造、状 態、動作を調査して、設計要素を抽出するプロセスを指す。これにより、完成したオブジェクトから再び設計図が作成される。 ブラックボックスの原理に基づく分析にも基づく機能的な模倣とは対照的に、リバースエンジニアリングでは、既存のオブジェクトを可能な限り正確に再現する ことを目指している。 多くの場合、得られた知見を検証するために、オブジェクトの 1:1 のコピーを作成し、それを基にさらなる開発を行うことが可能になる。

Reverse Engineering (aus englisch reverse engineering; für umgekehrt entwickeln, rekonstruieren; Kürzel: RE; auch Nachkonstruktion) bezeichnet den Vorgang, aus einem bestehenden fertigen System oder einem meistens industriell gefertigten Produkt durch Untersuchung der Strukturen, Zustände und Verhaltensweisen die Konstruktionselemente zu extrahieren. Aus dem fertigen Objekt wird somit wieder ein Plan erstellt.

Im Gegensatz zu einer funktionellen Nachempfindung, die ebenso auf Analysen nach dem Black-Box-Prinzip aufbauen kann, wird durch Reverse Engineering angestrebt, das vorliegende Objekt weitgehend exakt abzubilden.

Oft wird versucht, zur Verifikation der gewonnenen Einsichten eine 1:1-Kopie des Objekts anzufertigen, auf deren Basis es grundsätzlich möglich ist, Weiterentwicklung zu betreiben.
リバースエンジニアリング(英語:reverse engineering、逆開発、逆構築、略称:RE、後構造化)とは、既存の完成したシステムや、主に工業的に製造された製品について、その構造、状 態、動作を調査して、設計要素を抽出するプロセスを指す。これにより、完成したオブジェクトから再び設計図が作成される。

ブラックボックスの原理に基づく分析にも基づく機能的な模倣とは対照的に、リバースエンジニアリングでは、既存のオブジェクトを可能な限り正確に再現する ことを目指している。

多くの場合、得られた知見を検証するために、オブジェクトの 1:1 のコピーを作成し、それを基にさらなる開発を行うことが可能になる。
Einsatzbereiche
Hardware
Um Hardware zwecks Nachbau zu untersuchen, wurden z. B. in der DDR Methoden entwickelt, bei denen ein Chip-Die lagenweise abgetragen wurde (durch Schleifen oder selektives Ätzen) und dann die Ebenen per Mikroskop untersucht wurden, um die Funktionalität und ihre Hardwarebasis herauszufinden. Auf diese Weise entstand ein Z80-Nachbau als U880. Diese Berichte sind glaubhaft, da einige Firmen noch heute solche Dienste anbieten und erfolgreich erbringen.

Software
Speziell bezogen auf Software wird darunter meistens einer der drei folgenden Vorgänge verstanden:

Die Rückgewinnung des Quellcodes oder einer vergleichbaren Beschreibung aus Maschinencode, z. B. von einem ausführbaren Programm oder einer Programmbibliothek, etwa mit einem Disassembler (kann Teil eines Debuggers sein) oder einem Decompiler.
Die Erschließung der Regeln eines Kommunikationsprotokolls aus der Beobachtung der Kommunikation, z. B. mit einem Sniffer.
Die nachträgliche Erstellung eines Modells, ausgehend von bereits vorliegendem Quellcode, in der objektorientierten Programmierung.
Im ersten Fall werden oft Decompiler eingesetzt, die den Quellcode eines Programms weitestgehend automatisch aus seinem Binärcode zurückgewinnen. Ist dieses nicht durchgehend möglich, so kann der aus dem Binärcode des Programms direkt mit einem Disassembler ermittelbare Maschinencode auch manuell analysiert werden, was allerdings eine merkliche Erschwernis bedeutet. Es kann i. d. R. nicht der gesamte Programmquellcode ermittelt werden, da z. B. Kommentare nie und lokale Objektnamen nur selten im verfügbaren Binärcode enthalten sind. Oft ist das Ergebnis trotz allem für den jeweiligen Zweck ausreichend, z. B. zur Verhaltensanalyse eines Softwaresystems oder als Hilfe beim Beheben eines Fehlers.

Reverse Engineering ist oft auch notwendig, wenn etwa die Entwickler eines Betriebssystems, welches freie Software ist, für ein bestimmtes Gerät einen Gerätetreiber schreiben wollen, denn das dafür notwendige Wissen ist in vielen Fällen geheim. Aber hier genügt oft das Sniffen der Kommunikation zu und von dem betreffenden Gerät, also die zweite Methode. Disassemblieren oder Dekompilieren eines vorhandenen Gerätetreibers, etwa von einem nicht-freien Betriebssystem, ist in der Regel nicht notwendig.

Ein weiteres Anwendungsfeld sind Quelltext-Rekonstruktionen von Abandonware gewordenen Computerspielklassiker, wie z. B. Another World,[1][2] um u. a. Portierungen auf aktuelle Plattformen vornehmen zu können.

Beim dritten Fall spricht man jedoch in Abgrenzung zum Reverse Engineering insbesondere während des Softwareentwicklungsprozesses von Code-Rückführung, wenn aus einer Entwurfsspezifikation gewonnener Quellcode manuell modifiziert und der modifizierte Quellcode wieder in das Modell der Entwurfsspezifikation übernommen wird, um dort weiterverarbeitet werden zu können (vor allem bei Single Source CASE-Werkzeugen). Dies ist auch möglich, wenn bei bereits fortgeschrittenen und umfangreichen Software-Projekten gar keine Entwurfsspezifikation beispielsweise in UML existiert und nachträglich erzeugt werden soll.[3]


適用分野
ハードウェア
ハードウェアを複製するために、例えば東ドイツでは、チップダイを層ごとに除去(研削または選択的エッチング)し、その層を顕微鏡で観察して機能やハード ウェアの基盤を調べる方法が開発された。この方法により、Z80 の複製である U880 が誕生した。一部の企業が現在もこのようなサービスを提供し、成功を収めていることから、これらの報告は信頼できるものと考えられる。

ソフトウェア
ソフトウェアに関しては、通常、以下の 3 つのプロセスのいずれかを指す。

実行可能プログラムやプログラムライブラリなど、マシンコードからソースコードまたは同等の記述を、逆アセンブラ(デバッガの一部である場合もある)や逆 コンパイラなどを使用して復元すること。
通信プロトコルの規則を、通信の観察から解明すること。例えば、スニファを使用する場合など。
オブジェクト指向プログラミングにおいて、既存のソースコードからモデルを事後に作成すること。
最初のケースでは、プログラムのソースコードをバイナリコードから可能な限り自動的に復元するデコンパイラがよく使用される。これが完全に不可能な場合 は、プログラムのバイナリコードから逆アセンブラを使用して直接特定できるマシンコードを手作業で分析することも可能だが、これは非常に困難な作業とな る。通常、コメントは決して、ローカルオブジェクト名はごくまれにしか利用可能なバイナリコードに含まれていないため、プログラムのソースコード全体を復 元することはできない。しかし、多くの場合、その結果は、ソフトウェアシステムの動作分析やエラーの修正などの目的には十分だ。

リバースエンジニアリングは、フリーソフトウェアであるオペレーティングシステムの開発者が、特定のデバイス用のデバイスドライバを作成したい場合にも、 多くの場合、必要な知識が秘密にされているため、必要になる。ただし、この場合は、当該デバイスとの通信をスニッフィングする、つまり 2 番目の方法だけで十分な場合が多い。既存のデバイスドライバ(非フリーのオペレーティングシステムなど)の逆アセンブルや逆コンパイルは、通常、必要な い。

もう 1 つの応用分野は、Another World[1][2] など、アバンダンウェアとなったコンピュータゲームのソースコードの復元で、現在のプラットフォームへの移植などを行うためだ。

ただし、3 番目のケースでは、特にソフトウェア開発プロセスにおいて、リバースエンジニアリングとは区別して、設計仕様から取得したソースコードを手動で修正し、修 正したソースコードを設計仕様のモデルに再び取り込んで、そこでさらに処理できるようにする場合(主にシングルソース CASE ツールを使用する場合)を「コードの逆変換」と呼ぶ。これは、すでに進行中で大規模なソフトウェアプロジェクトにおいて、UML などの設計仕様が存在せず、後から作成する必要がある場合にも可能だ。[3]


Maschinenbau
Im Maschinenbau wird das Reverse-Engineering für verschiedene Aufgaben eingesetzt. Das ist eine direkte Folge der Verfügbarkeit von preisgünstigen 3D-Scannern mit hoher Auflösung – gepaart mit Software, die das Reverse Engineering immer enger mit den CAD-Systemen verzahnt. Gleichzeitig sind heute Computer-Systeme verfügbar, die über ausreichend Rechenleistung und Speicher verfügen, um die bei der Digitalisierung anfallenden Datenmengen zu verarbeiten.

Prozesse des Reverse-Engineering – Zielfindung
Beim Reverse-Engineering kann man verschiedene Prozesse unterscheiden.

Allen gemeinsam ist, dass das Ziel den Weg bestimmt und in technische und fertigungstechnische Ziele unterteilt wird.

Technische Anforderungen
Das Bauteil oder die Baugruppe steht dem Prozess in der Regel als physikalisches Objekt zur Verfügung. Bei historischen Systemen nutzt man alte Skizzen und Fotos. Wichtig ist zu verstehen, wie das Bauteil funktioniert und welche technischen Anforderungen gestellt werden. Zu den technischen Anforderungen gehören, welche Kräfte über das Bauteil übertragen werden, unter welchen Temperaturen das Bauteil eingesetzt wird, welchem Abrieb es unterliegt etc. Die Summe dieser Anforderungen ergibt das Ziel, an dem sich das Ergebnis des Reverse-Engineerings messen muss.

Fertigungstechnische Anforderungen
Den zweiten Aspekt stellen die fertigungstechnischen Anforderungen dar. Es ist nicht immer wirtschaftlich, das neue Bauteil mit demselben Fertigungsprozess herzustellen wie das Original. Häufig lohnt es sich nicht, bei geringen Stückzahlen, eine Gussform zu erstellen, wenn die technischen Anforderungen es erlauben dieses Bauteil als Fräsbauteil zu fertigen.

Alle weiteren Prozesse folgen diesem ersten Prozess der technischen und fertigungstechnischen Zieldefinition.


機械工学
機械製造では、リバースエンジニアリングがさまざまな業務に使用されている。これは、高解像度の安価な 3D スキャナーが利用可能になり、リバースエンジニアリングと CAD システムとの統合が進んだ結果だ。同時に、デジタル化で発生する大量のデータを処理するための十分な計算能力と記憶容量を備えたコンピュータシステムも利 用可能になっている。

リバースエンジニアリングのプロセス – 目標の設定
リバースエンジニアリングでは、さまざまなプロセスを区別することができる。

これらすべてに共通するのは、目標が道筋を決定し、技術的および製造技術的な目標に分けられることだ。

技術的要件
通常、部品またはアセンブリは、物理的なオブジェクトとしてプロセスに提供される。歴史的なシステムでは、古いスケッチや写真を使用する。部品がどのよう に機能し、どのような技術的要件が求められるかを理解することが重要だ。技術的要件には、部品に伝達される力、部品の使用温度、部品が受ける摩耗などがあ る。これらの要件の合計が、リバースエンジニアリングの結果の評価基準となる目標となる。

製造技術的要件
2つ目の側面は、製造技術的要件だ。新しい部品を、元の部品と同じ製造プロセスで製造することが、必ずしも経済的なとは限らない。技術的要件が、その部品 をフライス加工部品として製造することを許す場合、生産数が少ない場合は、鋳型を作成することは多くの場合、経済的に見合わない。

その他のプロセスはすべて、この最初の技術的および製造技術的な目標定義のプロセスに従う。


Scan to Print

Einfacher Stopfen für ein Profil
Nach der Zieldefinition, die bestimmt, mit welchem Material das Bauteil gedruckt wird, muss das Bauteil mit einem 3D-Scanner oder einem industriellen Computer-Tomographen (iCT) vollständig erfasst werden. Nacharbeit am so erstellten 3D-Modell ist in der Regel notwendig, bevor es gedruckt werden kann. Nicht gescannte Bereiche, wie beispielsweise die aufliegende Seite eines Modells oder andere nicht einsehbare Details, müssen gegebenenfalls ergänzt werden. Auch muss Sorge dafür getragen werden, dass das Flächenmodell „wasserdicht“ ist, dass also alle Kanten verknüpft sind, alle Flächenorientierungen homogenisiert sind und sich keine Löcher in der Oberfläche befinden. Abschließend sind noch druckprozessspezifische Anpassungen wie Stützstrukturen zu ergänzen. Ist diese Aufarbeitung abgeschlossen kann das Modell auf einem geeigneten 3D-Drucker reproduziert werden.

Mit diesem Verfahren lassen sich nur einfache Bauteile mit geringen Anforderungen herstellen. Das Verändern der Daten, die man aus dem 3D-Scan erhält, ist sehr zeit- und arbeitsintensiv. Damit ist dieses Verfahren nicht für alle Bauteile ökonomisch. Es bietet sich beispielsweise zur Herstellung nicht mehr verfügbarer Ersatzteile an.

Reverse-Engineering für die Reparatur
Bei diesem Prozess geht es darum ein Bauteil mit komplexen technischen Anforderungen herzustellen. Bei Investitionsgütern, wie einem Kraftwerk, einem Walzwerk oder einem Verdichter, findet man noch heute Systeme im Einsatz, die 30 Jahre und älter sind. Zudem nehmen die Hersteller dieser Sondermaschinen teilweise nicht mehr am Markt teil.

In diesem Fall werden die Bauteile vermessen und oft mit einem 3D-Scanner erfasst. Diese Daten werden dann in einer geeigneten Software in ein parametrisches CAD-Model umgewandelt. Durch die Abnutzung des Bauteils wie Verschleiß und Verzunderung, ist es eine kleine Kunst zu erkennen, wie die Abmaße am Originalteil gewesen sind. Im Speziellen bei den Profilen von Turbinenschaufeln und den Kanälen von Pumpen und Turbinen findet dieses Verfahren häufig Anwendung, da diese Profile über mehrere Spline-Querschnitte definiert sind.

Mit diesem Prozess lassen sich beliebig komplexe Systeme herstellen, die durch den Einsatz von modernen Materialien, Beschichtungen und Bearbeitungsverfahren besser als das Original sein können.

Dieser Prozess ist perfekt für die Reparatur von teuren Maschinen geeignet, bei denen die Ersatzteile nur wenige Male benötigt werden.

Wenn man diesen Prozess in einem regulierten Bereich wie der Luftfahrt-, der Pharma- oder der Lebensmittel-Industrie einsetzt, müssen die Produkte nach dem Reverse-Engineering von der zuständigen Behörde zugelassen werden.

Reverse-Engineering für eine Serienproduktion

RE Serienproduktion
Dieser Prozess durchläuft die Schritte des Reverse-Engineerings für die Reparatur. Nachdem das CAD-Model mit der spezialisierten Software erstellt wurde, wird dieses als natives Teil in das CAD-System des Herstellers übertragen. Damit wird gewährleistet, dass die Bauteile ohne besondere Kenntnisse in einer spezialisierten Software von einem Konstrukteur weiterentwickelt werden können.

Reverse-Forward Engineering

Reverse-Forward Engineering
Diesen Fall findet man immer dann, wenn zwei Bauteile mit hoher Präzision passen müssen. Dabei entsteht das erste Bauteil in einem Prozess wie Gießen oder Schmieden, bei dem man auf die Toleranzen nur einen geringen Einfluss hat. Das zweite Bauteil wird in der Regel auf einer CNC-Maschine hergestellt und muss dabei die Toleranzen des ersten Bauteils kompensieren. Abgebildet ist ein Schieber-Ventil, bei dem das Gehäuse gegossen wurde und der Schieber wird nun so produziert, dass die Nocken an dem Gussgehäuse den Schieber an die Dichtung drücken.
スキャンして印刷

プロファイル用のシンプルなプラグ
部品を印刷する材料を決定する目標を定義した後、3D スキャナーまたは産業用コンピュータ断層撮影装置 (iCT) を使用して、部品を完全にスキャンする必要があります。通常、作成された 3D モデルは、印刷する前に後処理が必要です。スキャンされていない部分、たとえばモデルの下面やその他の見えない部分は、必要に応じて補完する必要がある。 また、面モデルが「防水」である、つまりすべてのエッジが連結され、すべての面の向きが均一になり、表面に穴がないことを確認する必要がある。最後に、サ ポート構造などの印刷プロセス固有の調整を追加する。この処理が完了すると、モデルは適切な 3D プリンターで再現することができる。

この方法では、要件の低い単純な部品しか製造できない。3D スキャンから取得したデータの変更には、非常に時間と労力がかかる。そのため、この方法はすべての部品に経済的な方法とは限らない。例えば、入手できなく なったスペアパーツの製造に適している。

修理のためのリバースエンジニアリング
このプロセスでは、複雑な技術的要件を満たす部品を製造することが目的だ。発電所、圧延機、コンプレッサーなどの投資財には、30年以上も使用されている システムも今でも使用されている。さらに、これらの特殊機械のメーカーは、一部は市場から撤退している。

このような場合、部品を測定し、多くの場合 3D スキャナーで記録する。このデータは、適切なソフトウェアでパラメトリック CAD モデルに変換される。部品の摩耗や錆びなどの劣化により、元の部品の寸法を正確に把握することは、ちょっとした技術が必要だ。この方法は、タービンブレー ドのプロファイルやポンプやタービンのチャネルに多く採用されている。これらのプロファイルは、複数のスプライン断面で定義されているからだ。

このプロセスにより、最新の素材、コーティング、加工技術を用いて、オリジナルよりも優れた、任意の複雑なシステムを製造することができる。

このプロセスは、交換部品が数回しか必要とされない高価な機械の修理に最適だ。

航空、製薬、食品などの規制の厳しい分野でこのプロセスを採用する場合、リバースエンジニアリング後の製品は、所管官庁の認可を受ける必要がある。

量産のためのリバースエンジニアリング

RE 量産
このプロセスは、修理のためのリバースエンジニアリングの手順を踏む。専門ソフトウェアを使用して CAD モデルを作成した後、そのモデルをメーカーの CAD システムにネイティブパーツとして転送する。これにより、専門ソフトウェアに関する特別な知識がなくても、設計者が部品の開発を継続することができる。

リバースフォワードエンジニアリング

リバースフォワードエンジニアリング
このケースは、2 つの部品に高い精度が要求される場合に常に発生する。この場合、最初の部品は、公差の影響をほとんど受けない鋳造や鍛造などのプロセスで製造される。2つ 目の部品は通常、CNC機械で製造され、1つ目の部品の公差を補正する必要がある。図は、ハウジングが鋳造され、鋳造ハウジングのカムがスライドをシール に押し付けるようにスライドが製造されているスライドバルブだ。
Reverse-Engineering eines Lehm-Models
Auch heute noch werden Modelle mit schönen Oberflächen von Designern mit einem Lehmmodel erstellt. Diese Modelle werden dann mit einem 3D-Scanner erfasst und in einer geeigneten Software mit C2 Flächen nachmodelliert. Noch heute werden Autokarosserien als Lehmmodel erstellt.

Reverse-Engineering für die Systemintegration
Dieser Fall stellt eine Ausnahme zu der anfänglich erwähnten Regel zur Ziele-Definition dar. Die 3D-Daten werden benötigt, um ein neues System in ein bestehendes System zu integrieren. Dabei werden die Daten aus dem 3D-Scan genutzt, um den ist Zustand zu dokumentieren. Mit diesen Daten wird dann ein neues System eingepasst. In der Luftfahrt-Industrie wird häufig die Kabine mit einem 3D-Scanner erfasst, um eine neue Ausstattungsvariante zu planen.

Reverse-Engineering zur Einführung modellbasierter Entwicklung
Reverse-Engineering kann zum Wechsel von dokumentenbasierter Produktentwicklung zur Einführung von Model-based Systems Engineering (MBSE) beitragen, indem aus dem Produkt und der herkömmlichen Dokumentation ein Systemmodell abstrahiert und zusammengeführt wird. Damit wird aus dem bestehenden Wissensstand ein Modell erzeugt, dass für Weiterentwicklungen und Nachfolger des Produktes zur Verfügung steht.[4][5]

Weitere Anwendungen
Es gibt noch eine Reihe von weiteren Anwendungen, bei denen das Reverse-Engineering zum Einsatz kommt oder kommen kann:

Offline-Programmierung von Roboterbahnen für das Beschichten
Erstellen von Wachskernen für den Gussprozess in der Schmuckindustrie
Skalieren von Kunst Plastiken, die mittels Sand-Kern gedruckter Form gegossen werden sollen
Anpassung von Orthesen und Prothesen
Anpassung von Implantaten, die mittels Tomographie und 3D-Druck erstellt wurden
Diese Liste kann beliebig fortgeführt werden. Dabei orientieren sich die Prozesse im Kern an den oben beschriebenen Prozessen.

Qualitätssicherung des Reverse-Engineerings Prozess
Für ein hochwertiges Reverse-Engineering ist eine Qualitätssicherung sinnvoll. Diese sollte zu drei Zeitpunkten im Prozess erfolgen.

Sind wie bei Turbinenschaufeln eine Vielzahl von vermeintlich identischen Objekten vorhanden, werden mehrere Schaufeln mit dem Scanner erfasst. Diese Scans werden untereinander verglichen, um festzustellen, ob wirklich alle Objekte identisch sind. Ist das der Fall, werden die Scans vermittelt und dieser vermittelte Scan wird für das weiter Reverse-Engineering genutzt.
Nach dem Reverse-Engineering wird das neue CAD-Model mit den Scandaten verglichen und es wird ein Bericht erstellt, aus dem zu ersehen ist, wo das CAD-Model von den 3D-Scan Daten abweicht.
Nach der Fertigung wird das neue physische Model mit dem Scanner erfasst und mit dem CAD-Model verglichen, das im Reverse-Engineering angefertigt wurde.
Pharmazie, Biotechnologie und Systembiologie
In der Chemietechnik und der Arzneimittelforschung wird seit geraumer Zeit Reverse Engineering für die Generikaentwicklung oder andere Formen des Wissenstransfers praktiziert, was beispielsweise der Pharmaziebranche Indiens zum Aufstieg verhalf.[6] Im März 2021 rekonstruierten Forschende der Stanford-Universität die Sequenzen der mRNA-Impfstoffe BNT-162b2 von BioNTech/Pfizer und MRNA-1273 von Moderna per Reverse Engineering und veröffentlichten sie anschließend auf GitHub.[7][8]

In der Systembiologie bezeichnet Reverse Engineering, hier auch Netzwerkinferenz genannt, die Identifikation von biologischen Netzwerken, insbesondere Genregulationsnetzwerken, unter Verwendung sowohl von gemessenen biomedizinischen oder/und molekularbiologischen Daten, insbesondere Daten aus der Genexpressionsanalyse, als auch von molekularbiologischem Vorwissen.
粘土モデルの逆エンジニアリング
今日でも、デザイナーは粘土モデルを使用して美しい表面を持つモデルを作成している。これらのモデルは、3D スキャナーでスキャンされ、適切なソフトウェアを使用して C2 サーフェスで再モデリングされる。現在でも、自動車のボディは粘土モデルで作成されている。

システム統合のためのリバースエンジニアリング
このケースは、最初に述べた目標の定義に関する規則の例外だ。3Dデータは、新しいシステムを既存のシステムに統合するために必要だ。その際、3Dスキャ ンから得られたデータを使用して、現状を文書化する。このデータを使用して、新しいシステムを適合させる。航空業界では、新しい装備のバリエーションを計 画するために、3Dスキャナーでキャビンをスキャンすることがよくあります。

モデルベース開発の導入のためのリバースエンジニアリング
リバースエンジニアリングは、製品と従来の文書からシステムモデルを抽象化して統合することにより、文書ベースの製品開発からモデルベースシステムエンジ ニアリング(MBSE)の導入に貢献することができる。これにより、既存の知識から、製品のさらなる開発や後継製品に利用できるモデルが生成される。 [4][5]

その他の用途
リバースエンジニアリングが活用されている、または活用できる用途は他にも数多くあります。

コーティング用のロボット経路のオフラインプログラミング
宝飾品業界における鋳造工程用のワックスコアの作成
砂型で鋳造する芸術作品のスケールアップ
装具および義肢の調整
断層撮影および 3D 印刷によって作成されたインプラントの調整
このリストは、必要に応じて自由に追加することができます。その場合、プロセスは基本的に上記のプロセスに基づきます。

リバースエンジニアリングプロセスの品質保証
高品質のリバースエンジニアリングには、品質保証が有効です。品質保証は、プロセスの 3 つの段階で実施する必要があります。

タービンブレードのように、一見同じに見えるオブジェクトが多数ある場合は、複数のブレードをスキャナーでスキャンする。これらのスキャンを相互に比較 し、すべてのオブジェクトが本当に同一であるかどうかを判断する。同一である場合は、スキャンを転送し、この転送されたスキャンをリバースエンジニアリン グの次のステップで使用する。
リバースエンジニアリングの後、新しい CAD モデルをスキャンデータと比較し、CAD モデルが 3D スキャンデータとどこが異なるかを示したレポートを作成する。
製造後、新しい物理モデルをスキャナーでスキャンし、リバースエンジニアリングで作成された CAD モデルと比較する。
製薬、バイオテクノロジー、システム生物学
化学工学や医薬品研究では、ジェネリック医薬品の開発やその他の知識移転のために、リバースエンジニアリングが以前から実践されており、インドの製薬業界 の発展に貢献している。[6] 2021年3月、スタンフォード大学の研究者は、リバースエンジニアリングによって、BioNTech/Pfizer社のmRNAワクチン「BNT- 162b2」およびModerna社の「MRNA-1273」の配列を再構築し、GitHubで公開した。[7][8]

システム生物学において、リバースエンジニアリング(ここではネットワーク推論とも呼ばれる)とは、測定された生物医学的データおよび/または分子生物学 的データ(特に遺伝子発現解析データ)と、分子生物学の既知の知識とを用いて、生物学的ネットワーク、特に遺伝子調節ネットワークを特定することだ。
Rechtliche Aspekte
Die Erlangung eines Geschäftsgeheimnisses durch Untersuchen, Rückbauen oder Testen eines Produkts oder Gegenstands ist seit April 2019 gem. § 3 Abs. 1 Nr. 2 des Gesetzes zum Schutz von Geschäftsgeheimnissen (GeschGehG) grundsätzlich zulässig.[9]

Software
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 einer Sache gesetzlich das Recht zusteht, zur Überprüfung der Anwendungssicherheit (siehe auch Trojanisches Pferd) oder zur Fehlerbehebung 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 eher dem Zweck der Abschreckung und sind somit als einseitige Willensäußerung oder je nach Form als prophylaktische, einseitig vorgetragene Rechtsauffassung zu verstehen, die bei unabhängiger rechtlicher Prüfung möglicherweise keine Bestätigung finden 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 meistens um Prototypen oder Kleinserien geht, die noch erhebliche Mengen an Geschäftsgeheimnissen enthalten. Oftmals werden aus diesem Grund Rabatte zugunsten 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.

Schon lange wird auch Verschlüsselung und Verschleierung in der Computertechnik eingesetzt, wobei hiermit natürlich primär das Reverse Engineering erschwert werden soll, aber zunehmend auch, weil dadurch die novellierten Gesetze zum Urheberrecht in Bezug auf Kopierschutz und den daran geknüpften Strafandrohungen zum Tragen kommen könnten. Beispielhaft sei hier die Anklage des Russen Dmitry Sklyarov in den USA unter den Gesetzeswerk DMCA wegen Dekodierung von geschützten Textdokumenten im Jahr 2001 angeführt. Im Oktober 2003 ließ der US-Kongress jedoch vier Zusätze zu dem DMCA passieren, welche u. a. den Zweck der Archivierung von digitalen Werken als zeitlich begrenzte Ausnahme definierten und dafür notwendige Techniken wie das Reverse Engineering wieder erlauben.

“3. Computer programs and video games distributed in formats that have become obsolete and which require the original media or hardware as a condition of access. …The register has concluded that to the extent that libraries and archives wish to make preservation copies of published software and videogames that were distributed in formats that are (either because the physical medium on which they were distributed is no longer in use or because the use of an obsolete operating system is required), such activity is a noninfringing use covered by section 108(c) of the Copyright Act.”[10]

Im November 2006 hat die Library of Congress der USA einer dauerhaften Ausnahme bezüglich des DMCA zugestimmt, welche das Umgehen eines Kopierschutzes von Software erlaubt, welche nicht länger vom Urheberrechtsinhaber verkauft oder unterstützt wird (Abandonware), sodass also eine Archivierung und digitale Erhaltung ohne Angst vor Rechtsverfolgung möglich ist.[11]

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 (z. B. durch Patente).


法的側面
2019年4月以降、製品または物品の調査、分解、または試験によって営業秘密を取得することは、営業秘密保護法(GeschGehG)第3条第1項第2 号により、原則として認められている。[9]

ソフトウェア
多くの企業は、ライセンス条件により自社製品の逆エンジニアリングを禁止している。プロトコルの分析は、ソフトウェア自体が調査の対象ではないため、法的 に影響を受けない。さらに、多くの国では、ユーザーには、アプリケーションの安全性を確認するため(トロイの木馬も参照)、またはエラーを修正するため に、購入したソフトウェア製品をリバースエンジニアリングする法的権利があるため、このようなライセンス条項は一般的に無効だ。自分が所有するものを純粋 に調査することは、場合によっては研究の自由とみなされるため、このようなライセンス条項も適用されない。

多くの場合、このようなライセンス条項は威嚇の目的で用いられており、一方的な意思表示、あるいはその形態によっては予防的な、一方的に提示された法的見 解と解釈され、独立した法的審査では確認されない可能性があり、したがって、それ以上の効力を有しない。ソフトウェア分野では、ドイツ語圏で一般的に疑わ しいとされる「シュリンクラップライセンス」契約がよく言及される。

ただし、違反が発見された場合に契約上の罰金を支払う義務を負っている場合もある。この形態の個別契約は、状況によっては完全に合法的に締結されている場 合もあり、その場合は、通常、かなりの量の営業秘密を含むプロトタイプや少量生産品が対象となっている。このため、購入者に割引(使用可能性の制限と引き 換え)が与えられる場合や、上記の契約上の罰則によって、販売者の実際のリスク(例えば、秘密漏えい)を少なくとも一定程度カバーしようとする場合があ る。さらに、機密性の高い対象物については、期間限定の貸与という方法も採用されている。

コンピュータ技術では、長い間、暗号化や隠蔽が採用されてきた。これは、当然のことながら、リバースエンジニアリングを困難にするためであるが、コピー保 護に関する著作権法の改正や、それに関連する罰則が適用される可能性があるためでもある。その一例として、2001年に、ロシア人のドミトリー・スクリャ ロフ氏が、保護されたテキスト文書をデコードしたとして、DMCA 法に基づき米国で起訴された事件がある。しかし、2003年10月、米国議会はDMCAに4つの追加条項を可決し、デジタル作品のアーカイブを期間限定の 例外として定義し、そのために必要なリバースエンジニアリングなどの技術を再び許可した。

「3. アクセス条件として元のメディアまたはハードウェアを必要とする、廃止されたフォーマットで配布されているコンピュータプログラムおよびビデオゲーム。… 登録機関は、図書館およびアーカイブが、配布された物理的な媒体が使用されなくなったか、または廃止されたオペレーティングシステムを使用する必要がある ために、廃止された形式で配布された公開ソフトウェアおよびビデオゲームの保存用コピーを作成することを希望する場合、そのような活動は著作権法108条 (c)項で規定される非侵害的な使用に該当すると結論付けた。」[10]

2006年11月、米国議会図書館は、著作権者によって販売またはサポートされなくなったソフトウェア(アバンダンウェア)のコピー保護を回避することを 許可する、DMCA に関する恒久的な例外を承認した。これにより、法的措置を恐れることなく、アーカイブおよびデジタル保存が可能になった。[11]

リバースエンジニアリングの結果を商業的な複製に使用する場合、通常の独立した研究開発の結果(特許など)の場合と同様に、膨大な量の商業的保護権(盗作 など)の問題に直面することになる。


Technik und Elektronik
Das Reverse Engineering zum Zweck des Nachbaus von technischen Objekten hat oft das Ziel, Entwicklungskosten und -risiken zu verringern sowie fehlendes eigenes Know-how zu kompensieren. Die zusätzliche Konkurrenz wird deshalb vom Originalhersteller oft nicht hingenommen und rechtlich bekämpft. Außerdem schützen sich Originalhersteller vor Nachahmung durch Verschleierung oder sichern ihre Originalität durch verdeckte Produktkennzeichnung (Tags) ab. Der Nachbau ist mindestens immer dann illegal, wenn fremde Patente verletzt werden oder wenn das Produkt als Originalteil gekennzeichnet ist. Aber auch, wenn ungeschütztes Gedankengut anderer benutzt wird, kann eine Urheberrechtsverletzung vorliegen.[12] Hochintegrierte Schaltkreise erschweren das reverse engineering durch ihre Strukturgrößen im Nanometerbereich. Auf Leiterplatten werden oft Bezeichnungen der verbauten integrierten Schaltkreise entfernt.

Das Reverse Engineering unterscheidet sich vom technischen Re-Engineering dadurch, dass bei letzterem die technische Dokumentation, beispielsweise durch Open-Source-Hardware, vorliegt und die Funktionalität mit neueren Mitteln nachgebildet oder erweitert werden soll.[12]
技術と電子機器
技術的対象物の複製を目的としたリバースエンジニアリングは、多くの場合、開発コストとリスクの削減、および自社に不足するノウハウの補完を目的としてい る。そのため、追加の競争は、多くの場合、オリジナルメーカーによって容認されず、法的に争われる。さらに、オリジナルメーカーは、偽装によって模倣から 自社製品を保護したり、隠された製品識別情報(タグ)によって自社製品の独創性を確保したりしている。模倣は、他社の特許を侵害する場合、または製品がオ リジナル部品として識別されている場合、少なくとも違法となる。また、他者の保護されていないアイデアを使用した場合も、著作権侵害に該当する可能性があ る。[12] 高度に統合された回路は、その構造サイズがナノメートルレベルであるため、リバースエンジニアリングを困難にしている。プリント基板では、組み込まれた集 積回路の名称が削除されている場合が多い。

リバースエンジニアリングは、技術文書(オープンソースハードウェアなど)が存在し、その機能性を新しい手段で再現または拡張することを目的とする技術的 なリエンジニアリングとは異なる。[12]
Crack (Software)
CrackMe
Inoffizieller Patch
Netzwerkinferenz (Systembiologie)
Reinraum-Implementierung

クラック (ソフトウェア)
CrackMe
非公式パッチ
ネットワーク会議 (システム生物学)
クリーンルーム実装

Literatur
Dennis Yurichev: Reverse Engineering for Beginners. Online book: https://beginners.re/ German version: https://beginners.re/RE4B-DE.pdf
Pamela Samuelson, Suzanne Scotchmer: The Law and Economics of Reverse Engineering. In: Yale Law Journal. Vol 111, No. 7, Mai 2002, S. 1575–1664. (PDF) (Memento vom 15. Februar 2012 im Internet Archive)
E. Eilam: Reversing: Secrets of Reverse Engineering. John Wiley & Sons, 2005, ISBN 0-7645-7481-7.
H. J. van Zuylen: The REDO Compendium. Reverse Engineering for Software Maintenance. John Wiley & Sons, Chichester u. a. 1993, ISBN 0-471-93607-3.
Matthias Pierson, Thomas Ahrens, Karsten Fischer: Recht des geistigen Eigentums. Verlag Vahlen, 2007, ISBN 978-3-8006-3428-6.
Marcus von Welser, Alexander González: Marken- und Produktpiraterie, Strategien und Lösungsansätze zu ihrer Bekämpfung. Wiley-VCH, 2007, ISBN 978-3-527-50239-4.
Vinesh Raja, Kiran J. Fernandes: Reverse Engineering-An Industrial Perspective. Springer, 2008, ISBN 978-1-84628-855-5.
Christine Schöne: Reverse Engineering für Freiformflächen in Prozessketten der Produktionstechnik. Dr Hut, 2009, ISBN 978-3-86853-103-9.

文献
デニス・ユリチェフ: 初心者のためのリバースエンジニアリング. オンラインブック: https://beginners.re/ ドイツ語版: https://beginners.re/RE4B-DE.pdf
Pamela Samuelson, Suzanne Scotchmer: The Law and Economics of Reverse Engineering. In: Yale Law Journal. Vol 111, No. 7, Mai 2002, S. 1575-1664. (PDF) (Memmento vom 15. Februar 2012 im Internet Archive)
E. E. Eilam: Reversing: Secrets of Reverse Engineering. John Wiley & Sons, 2005, ISBN 0-7645-7481-7.
H. H. J. van Zuylen: The REDO Compendium. ソフトウェア保守のためのリバースエンジニアリング。John Wiley & Sons, Chichester u. a. 1993, ISBN 0-471-93607-3.
Matthias Pierson, Thomas Ahrens, Karsten Fischer: Recht des geistigen Eigentums. Verlag Vahlen, 2007, ISBN 978-3-8006-3428-6.
Marcus von Welser, Alexander González: Marken- und Produktpiraterie, Strategien and Lösungsansätze to Their Bekämpfung. Wiley-VCH, 2007, ISBN 978-3-527-50239-4.
Vinesh Raja, Kiran J. Fernandes: Reverse Engineering-An Industrial Perspective. Springer, 2008, ISBN 978-1-84628-855-5.
Christine Schöne: Reverse Engineering für Freiformflächen in Prozessketten der Produktionstechnik. Dr Hut, 2009, ISBN 978-3-86853-103-9.

https://de.wikipedia.org/wiki/Reverse_Engineering

リ ンク

文 献

そ の他の情報

CC

Copyleft, CC, Mitzub'ixi Quq Chi'j, 1996-2099