La ingeniería inversa es el proceso de descompilar y analizar un producto para determinar su diseño, funcionalidad y proceso de fabricación con el fin de crear un producto similar o mejorar el existente. Se utiliza para descubrir secretos comerciales, mejorar productos existentes, o crear productos compatibles. La ingeniería inversa se aplica a software, hardware y procesos industriales.