リバースエンジニアリング(英: reverse engineering)とは、機械を分解したり、製品の動作を観察したり、ソフトウェアの動作を解析するなどして、製品の構造を分析し、そこから製造方法や動作原理、設計図などの仕様やソースコードなどを調査することを指す。 直訳すれば「逆算作業」といったものになるが、計算機科学の分野では「反転工学」と翻訳されることが多い[1]。 一般的に工業製品の多くは、設計図や仕様書の概略程度しか公表されておらず、詳細な動作の原理などは公表されていない。 また、コンピュータ・プログラムのソースコードも、近年優勢なオープンソース製品では公開されており、広く検証されているものも多いが、プロプライエタリ商品の場合は一部を除き[注釈 1]非公開のため、情報セキュリティ上の危険が(仮に)存在していても秘密扱いの場合がほとんどである。そのため、様々な技術や創意工夫が用いられて