リバースエンジニアリングとは
リバースエンジニアリングとは、完成した製品や部品から設計図や必要な材料などを推測することです。プログラムの分野では、完成したプログラムから逆算して、どんなソースコードなのか取り出す作業と言われています。
リバースエンジニアリングを料理に例えて説明
ここからは、リバースエンジニアリングが一体どういったものなのか、料理をたとえとして説明していきます。たとえば、小学生のAさんの家で、美味しいピザ屋さんのピザを買ったとします。Aさんは「このピザ、美味しいね。来週も食べたい」と言いました。しかし、Aさんの家ではそんなに何度もピザを頼むお金はありません。そこで、困ったAさんのお母さんが「よし、それなら私が自分でピザを作ろう」と思い立ちます。Aさんのお母さんは、Aさんのためにピザをしっかりと観察して、味や見た目から材料・作り方を想像しました。そして色々な分析をした結果、Aさんのお母さんはピザ屋さんのレシピを作ります。Aさんのお母さんが行ったのがリバースエンジニアリングという作業と言えます。このたとえ話では、ピザが完成した製品、ピザを作るのに必要な材料や作り方、つまりレシピが設計図と例えられます。ふつう、ピザ屋さんにピザの作り方を聞いても、答えてくれるわけがありません。リバースエンジニアリングがよく利用される自動車の部品や、便利なプログラムも同様で、メーカーやソフトウェア会社に問い合わせしたからと言って、「こうやって作るんだよ」と教えてくれる会社はありません。それどころか、メーカー自体がもう部品を作っていなかったり、設計図を捨ててしまっていたりします。何十年も昔のものであれば、会社が無くなってしまっていたということもよくあります。そのため、リバースエンジニアリングが有効なのです。
実際のリバースエンジニアリングの流れ
実際にリバースエンジニアリングを行うには、Aさんの家のように想像だけで設計図や材料を正確に当てることはできません。また、ビジネスとして行うなら、ゆっくり試行錯誤を繰り返していく時間や予算もありません。現実のリバースエンジニアリングでは、最新の技術や機械を用いて製品を計測します。高性能な3Dスキャナを使って、製品から図面データを書き起こします。近年では破損・欠損した部品や製品であっても図面で修復し、完全な状態の図面を起こすことが可能です。正確かつ再現度の高い図面ができれば、あとはこっちのもの。図面をもとに加工用のマシンを使い、精密加工を行い、もとの製品を再現するのです。