L’ingénierie inverse consiste à démonter un produit fini afin d’en comprendre le fonctionnement interne. Dans le domaine informatique, cela peut inclure la désassemblage du code source d’un logiciel afin d’en comprendre son fonctionnement.