リバースエンジニアリング(英: reverse engineering)とは、機械を分解したり、製品の動作を観察したり、ソフトウェアの動作を解析するなどして、製品の構造を分析し、そこから製造方法や動作原理、設計図などの仕様やソースコードなどを調査することを指す。 直訳すれば「逆算作業」といったものになるが,計算機科学の分野では「反転工学」と翻訳されることが多い。