La “decompilazione” di un programma consiste nella sua suddivisione in semplici istruzioni eseguibili
dal computer, nel tentativo di comprenderne il funzionamento generale; il “reverse-engineering”
(letteralmente, “ingegnerizzazione al contrario”) invece consiste nello studio del comportamento del
software e nell’analisi dei formato dei dati trasmessi o memorizzati da un programma, allo scopo di
individuarne i principi di funzionamento