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

トップページ用語集

名称

解説

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

ソフトウェアの場合には、実行可能ファイル逆アセンブル逆コンパイルの手法によって解析してソースコードを入手して行います。スクリプト言語のように、最初からソースコードが入手できる場合もありますが、リバースエンジニアリングをしづらくするために、難読化されているケースもあります。

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

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

なお、リバースエンジニアリングを禁止する条項を EULA(エンドユーザー使用許諾契約)に含めることが多く、それを無視して行えば、契約内容に違反していることになるので注意が必要です。


参考リンク

更新履歴


用語集のトップページへ

Programming Place Plus のトップページへ



はてなブックマーク に保存 Pocket に保存 Facebook でシェア
X で ポストフォロー LINE で送る noteで書く
rss1.0 取得ボタン RSS 管理者情報 プライバシーポリシー
先頭へ戻る