La decompilazione è il processo che traduce software compilato, come un eseguibile o una libreria, in una rappresentazione di livello più alto che le persone possono esaminare. Il risultato può assomigliare al codice sorgente, ma di solito non ripristina i nomi, i commenti, la struttura o il codice sorgente esatti dell'originale. Può aiutare gli analisti a comprendere il comportamento di un programma quando il relativo codice sorgente non è disponibile.
Nel campo della sicurezza informatica, ricercatori e responsabili della difesa usano la decompilazione per esaminare programmi sospetti, indagare sulle vulnerabilità e capire come il software gestisce i dati o comunica. Anche gli aggressori possono usarla per studiare le applicazioni, individuare punti deboli o estrarre segreti incorporati. Nella reimplementazione del software, la decompilazione del codice è distinta dall'osservazione degli input e degli output di un programma: comporta l'esame del programma compilato stesso. La decompilazione può essere soggetta a restrizioni legali o contrattuali, pertanto è importante considerare le autorizzazioni e le norme applicabili.


