La ingeniería inversa tradicional (nivel de ensamblaje) del software es un proceso tedioso que se ha hecho mucho más accesible gracias a los decompiladores modernos. Operando solo en código máquina compilado, un descompilador intenta recuperar una representación aproximada del nivel de fuente.