先頭へ戻る

リバースエンジニアリング | Programming Place Plus 用語集

Programming Place Plus トップページ -- 用語集

先頭へ戻る

名称

解説

ソフトウェアハードウェアなどの製品を入手し、解析や分解などによって動作原理や製造方法などを明らかにすることです。

ソフトウェアの場合には、実行可能ファイルを逆アセンブルや逆コンパイルの手法によって解析してソースコードを入手して行います。

リバースエンジニアリングそのものは違法行為ではありませんが、それによって入手した情報をそのまま自身の製品開発に取り入れるなどすると、著作権の侵害であったり、不正競争防止法に違反する恐れがあります。自社製品開発の参考として、他社製品を解析するような場合に、意図せず違法行為になってしまわないよう、リバースエンジニアリングを行うチームと、実装を行うチームを分けるクリーンルーム手法を採用することがあります(解析した結果を直接的に実装に使わないように配慮する)。

リバースエンジニアリングをおこなう目的としてほかにも、自社の特許技術を勝手に使用していないか調べる、ソースコードが失われてしまった過去のソフトウェアについて調べる、既存製品と連携する製品を開発するためにインターフェースデータフォーマットを解析する、セキュリティ上の問題(脆弱性)の有無を調べる、ウイルス対策ソフトの開発のためにコンピュータウイルスを解析するといったものがあります。

なお、リバースエンジニアリングを禁止する条項を EULA(エンドユーザー使用許諾契約)に含めることが多いですが、その主張が無制限に認められるとは限らないとする考え方もあります。


参考リンク

更新履歴


用語集のトップページへ

Programming Place Plus のトップページへ



はてなブックマーク に保存 Pocket に保存 Facebook でシェア
Twitter でツイート Twitter をフォロー LINE で送る
rss1.0 取得ボタン RSS 管理者情報 プライバシーポリシー