リバースエンジニアリング
【英】reverse engineering
リバースエンジニアリングとは、既存の製品を解体・分解して、製品の仕組みや構成部品、技術要素などを分析する手法のことである。
リバースエンジニアリングは、ソフトウェアに対してはプログラムの分析が行われ、ハードウェアでは製品の分解が行われる。リバースエンジニアリングが行われる主な目的は、他社製品の仕様を知るためであり、その理由は製品間の互換性を保つためであるとされる。ちなみに、企業が販売している商品そのものには特許権や著作権が含まれている場合も多いが、「開発段階のアイディア」は法的に禁止されていない。
ソフトウェアの場合、リバースエンジニアリングの技法としては、機械語で記述されたプログラムを高級プログラミング言語のソースコードに戻す「逆コンパイル」などが主に行われる。逆コンパイルは著作権を侵害する危険性の多い手法であるため、敢えて避けられる場合も多い。使用許諾契約書でリバースエンジニアリングを禁止していることも多く、また、逆コンパイル対策用ソフトウェアなども開発されている。
また、システムの保守やセキュリティ強化、権利侵害の取り締まりなどを目的としてリバースエンジニアリングが行われる場合もある。ある製品について仕様書と実際の製品とが食い違っていないかを検証したり、バグやセキュリティホールの可能性を調査したり、あるいは他社製品に自社の特許が盗用されていないかを調べたりする際などにもリバースエンジニアリングが行われている。
参照リンク
IPX -知的財産権保護のためのリバースエンジニアリング事業
|