リバースエンジニアリング【reverse engineering】リバエン

概要

リバースエンジニアリングとは出荷された製品を入手して分解や解析などを行い、その動作原理や製造方法、設計や構造、仕様の詳細、構成要素などを明らかにすること。同じように機能する製品の開発などで行われることがある。
リバースエンジニアリングのイメージ画像

企業などが他社製品のリバースエンジニアリングによって得られた情報は、類似製品や互換製品の開発、同等の機能の実現などのために利用されることが多いが、自社特許の侵害が無いか調査するといった目的で行われることもある。

ソフトウェアの場合には実行可能形式のプログラムから逆アセンブルや逆コンパイルなどを行って、(不完全な)ソースコードを取得して動作を解析することが多い。他の工業製品の場合と同じように互換製品などを開発するために行われるほか、コンピュータウイルスなどマルウェアの動作を詳細に調べ対策プログラムを開発したり、ソフトウェアの保安上の弱点(脆弱性)を探し出すなどセキュリティ上の目的で行われることも多い。

リバースエンジニアリングを行うこと自体は合法だが、抽出したコンピュータプログラムを丸ごと複製して自社製品に組み込むといった行為は著作権違反、企業秘密営業秘密)として保護された製法や構造などを割り出して無許諾で模倣した場合は不正競争防止法違反などに問われることがある。

このような権利侵害を避けるため、リバースエンジニアリングを行うチームが外形的な仕様などを記述し、隔離された別のチームが書面を元に同じ働きをする実装方法を独自に考案するという手法が用いられることがある。これをクリーンルーム設計(クリーンルーム手法)という。ただし、この方式では特許権意匠権の侵害を避けることはできない。

他の辞典等による「リバースエンジニアリング」の解説 (外部サイト)

資格試験などの「リバースエンジニアリング」の出題履歴

▼ ITパスポート試験
令5】 運用中のソフトウェアの仕様書がないので、ソースコードを解析してプログラムの仕様書を作成した。この手法を何というか。
令2秋】 リバースエンジニアリングで実施する作業として、最も適切なものはどれか。
平30秋】 自社開発して長年使用しているソフトウェアがあるが、ドキュメントが不十分で保守性が良くない。保守のためのドキュメントを作成するために、既存のソフトウェアのプログラムを解析した。
平26春】 リバースエンジニアリングの説明として、適切なものはどれか。
▼ 基本情報技術者試験
令7修6/令5修12/令2修7/平31修1/平29秋/平28修1/平24春】 ソフトウェアのリバースエンジニアリングの説明はどれか。
令7修1/令3修6/令1修12/平29修7/平26秋/平23修6/平22春】 プログラムからUMLのクラス図を生成することを何と呼ぶか。
令5修1/平30修1】 ソフトウェアを保守するときなどに利用される技術であるリバースエンジニアリングに該当するものはどれか。
令4修6/令2修12/平29修12/平28秋/平27修6/平24修12/平21春】 モデリングツールを使用して,本稼働中のデータベースの定義情報からE-R図などで表現した設計書を生成する手法はどれか。
令3修1/令1修6/平29修6/平27秋/平26修7/平25修1/平23修7/平22修7】 ソースコードやオブジェクトコードを解析して,プログラムの仕様と設計の情報を取り出す手法はどれか。
この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。