Sommario:
Definizione - Cosa significa ingegneria inversa?
Il reverse engineering, nella programmazione per computer, è una tecnica utilizzata per analizzare il software al fine di identificare e comprendere le parti di cui è composto. Le solite ragioni per decodificare un pezzo di software sono ricreare il programma, costruire qualcosa di simile ad esso, sfruttare le sue debolezze o rafforzare le sue difese.
Techopedia spiega il reverse engineering
Poiché il software proprietario chiuso non viene mai fornito con la documentazione che rivela il codice sorgente utilizzato per crearlo, le persone usano il reverse engineering ogni volta che vogliono capire il funzionamento interno del software.
Alcuni hacker usano il reverse engineering per trovare punti deboli di programmi che possono sfruttare.
Altri hacker usano il reverse engineering per individuare i punti deboli con l'intenzione di rafforzare le difese lì.
Le società di software con prodotti concorrenti eseguono il reverse engineering dei programmi dei loro concorrenti per scoprire dove e come è possibile apportare miglioramenti ai propri prodotti. Alcune aziende usano il reverse engineering quando non hanno ancora prodotti simili, per creare prodotti propri.
Coloro che intendono costruire il proprio prodotto basato su uno esistente spesso preferiscono il reverse engineering rispetto alla creazione da zero perché, una volta identificati i pezzi e le dipendenze, il processo di ricostruzione tende ad essere molto più semplice.
Negli Stati Uniti, il reverse engineering del software è protetto dall'eccezione del fair use nella legge sul copyright.