Decompilare il software significa prendere quel software e cambiare la lingua in cui è scritto in qualcosa che sia più comprensibile per gli umani. Lo fa prendendo la lingua del programma originale e modificandola in un codice sorgente che può essere compreso meglio. Se fatto correttamente, quando una persona tenta di decompilare il software, può creare un programma che agisce in modo molto simile, se non esattamente uguale, al software originale.
Ci sono molti programmi che possono essere usati per decompilare il software. Alcuni di questi programmi hanno usi legittimi e altri no. Va notato che chiunque tenti di decompilare il software per scopi illegali potrebbe violare il furto di proprietà intellettuale, che è punibile penalmente in molti paesi.
In effetti, la creazione di copie pirata del software o la creazione di un prodotto che ha la stessa funzione del software originale può essere la ragione più comune per decompilare il software. Questo perché potrebbe essere possibile utilizzare un decompilatore software per rimuovere dal software la sua protezione anticopia. Pertanto, chiunque riesca a decompilare con successo il software in questo modo ha una capacità illimitata di creare copie del programma.
Mentre molte aziende vorrebbero vedere i programmi per computer che decompilano il software fuorilegge solo per questo motivo, ci sono anche alcuni usi legittimi per la decompilazione del software. Questi includono la ricerca di bug nel programma, la ricerca di malware e il controllo del codice. Inoltre, l’utilizzo di un programma per decompilare il software può fungere da supporto all’apprendimento per gli studenti che studiano programmazione. Queste istanze possono essere ragioni molto valide per decompilare il software.
Spesso, un decompilatore può essere uno strumento utile per coloro che hanno a che fare con software open source, che potrebbero voler aggiungere funzionalità o valore a un determinato programma. In questo caso, un decompilatore può aiutare sostanzialmente nel progresso verso la riscrittura o l’aggiunta al programma. Tuttavia, questo è molto diverso dalla decompilazione di un programma da un importante produttore di software, la maggior parte dei quali è protetta da accordi di licenza e codice anti-copia.
Va notato che la decompilazione del software non significa solo disassemblare un programma, sebbene il nome possa suggerire che è l’unica cosa da fare. Anche la parte traduttiva della decompilazione è molto importante. Spesso, una volta tradotto, viene poi ricomposto insieme per vedere se sono stati ottenuti i risultati desiderati. In caso contrario, potrebbe essere necessario eseguire ulteriori lavori.