リバースエンジニアリング 【reverse engineering】 リバエン
概要
リバースエンジニアリング(reverse engineering)とは、出荷された製品を入手して分解や解析などを行い、その動作原理や製造方法、設計や構造、仕様の詳細、構成要素などを明らかにすること。同じように機能する製品の開発などで行われることがある。企業などが他社製品のリバースエンジニアリングによって得られた情報は、類似製品や互換製品の開発、同等の機能の実現などのために利用されることが多いが、自社特許の侵害が無いか調査するといった目的で行われることもある。
ソフトウェアの場合には実行可能形式のプログラムから逆アセンブルや逆コンパイルなどを行って、(不完全な)ソースコードを取得して動作を解析することが多い。他の工業製品の場合と同じように互換製品などを開発するために行われるほか、コンピュータウイルスなどマルウェアの動作を詳細に調べ対策プログラムを開発したり、ソフトウェアの保安上の弱点(脆弱性)を探し出すなどセキュリティ上の目的で行われることも多い。
リバースエンジニアリングを行うこと自体は合法だが、抽出したコンピュータプログラムを丸ごと複製して自社製品に組み込むといった行為は著作権違反、企業秘密(営業秘密)として保護された製法や構造などを割り出して無許諾で模倣した場合は不正競争防止法違反などに問われることがある。
このような権利侵害を避けるため、リバースエンジニアリングを行うチームが外形的な仕様などを記述し、隔離された別のチームが書面を元に同じ働きをする実装方法を独自に考案するという手法が用いられることがある。これをクリーンルーム設計(クリーンルーム手法)という。ただし、この方式では特許権や意匠権の侵害を避けることはできない。
(2018.5.17更新)
システム開発の用語一覧
その他の関連用語
試験出題履歴
ITパスポート試験 : 【令5 問39】 【令2秋 問51】 【平30秋 問39】 【平26春 問47】
基本情報技術者試験 : 【令7修6 問38】 【令7修1 問38】 【令5修12 問38】 【令5修1 問50】 【令4修6 問50】 【令3修6 問49】 【令3修1 問50】 【令2修12 問50】 【令2修7 問50】 【令1修12 問50】 【令1修6 問50】 【平31修1 問50】 【平30修1 問50】 【平29修12 問50】 【平29秋 問50】 【平29修7 問50】 【平29修6 問50】 【平28秋 問50】 【平28修1 問50】 【平27秋 問49】 【平27修6 問49】 【平26秋 問50】 【平26修7 問50】 【平25修1 問50】 【平24修12 問51】 【平24春 問50】 【平23修7 問50】 【平23修6 問52】 【平22修7 問50】 【平22春 問49】 【平21春 問49】
基本情報技術者試験 : 【令7修6 問38】 【令7修1 問38】 【令5修12 問38】 【令5修1 問50】 【令4修6 問50】 【令3修6 問49】 【令3修1 問50】 【令2修12 問50】 【令2修7 問50】 【令1修12 問50】 【令1修6 問50】 【平31修1 問50】 【平30修1 問50】 【平29修12 問50】 【平29秋 問50】 【平29修7 問50】 【平29修6 問50】 【平28秋 問50】 【平28修1 問50】 【平27秋 問49】 【平27修6 問49】 【平26秋 問50】 【平26修7 問50】 【平25修1 問50】 【平24修12 問51】 【平24春 問50】 【平23修7 問50】 【平23修6 問52】 【平22修7 問50】 【平22春 問49】 【平21春 問49】