Retroingegneria
Da Ufopedia.
(Creata pagina con 'La '''reingegnerizzazione''' o '''ingegneria inversa''' (spesso si usa il termine inglese '''reverse engineering''') è il processo di prendere qualcosa (un dispositivo, un […')
Differenza successiva →
Versione delle 14:54, 1 ott 2009
La reingegnerizzazione o ingegneria inversa (spesso si usa il termine inglese reverse engineering) è il processo di prendere qualcosa (un dispositivo, un componente elettrico, un programma software, ecc.) e analizzarne in dettaglio il funzionamento, solitamente con l'intenzione di costruire un nuovo dispositivo o programma che faccia la stessa cosa senza in realtà copiare niente dall'originale; ovvero realizzare un secondo dispositivo, componente o programma in grado di interfacciarsi con il primo.
In senso stretto l'attività di ingegneria inversa consiste nella comprensione del funzionamento e della realizzazione di un dispositivo fisico o virtuale al fine di produrre il nuovo dispositivo, mentre il termine reingegnerizzazione comprende entrambe le attività, ovvero quella di analisi e quella di ridisegno.
Per affrontare seriamente il reversing sono essenziali conoscenze di assembly, programmazione e logica.
In genere le pratiche di reversing vengono utilizzate quando una softwarehouse mantiene un codice proprietario per i suoi prodotti. A quel punto il reverser analizza i programmi e cerca di capirne il funzionamento senza avere a disposizione un sorgente. Alternativamente, il reversing viene applicato come forma di hacking, per permettere a dispositivi o a software di fare qualcosa per cui non sono stati progettati (come ultimamente sta succedendo con i lettori Mp3).
Spesso il reversing invece entra in gioco con i videogame, per crearne delle varianti multiplayer e modificate (non necessariamente crackate) per rendere l'esperienza di gioco più divertente; così infatti sono nati moltissimi delle versioni multiplayer di famosi videogame single player come GTA.
Il reverse engineering viene fatto comunemente per evitare di violare i diritti d'autore sulla funzionalità desiderata, e può venire usato per cercare di eludere un brevetto, sebbene ciò sia un po' rischioso: i brevetti si applicano alle funzionalità, non a loro specifiche implementazioni.
Il reverse engineering viene usato spesso dalle forze armate al fine di copiare la tecnologia di altre nazioni, spesso in congiunzione a operazioni di intelligence. È stato ampiamente usato durante la Seconda Guerra Mondiale e la Guerra Fredda.
Il reverse engineering di sistemi software o hardware con scopi di interoperabilità, per esempio al fine di supportare formati di file o periferiche hardware non documentati, è prevalentemente ritenuto essere legale, sebbene i detentori spesso facciano valere aggressivamente i loro brevetti. Tuttavia, poiché nell'Unione Europea non è passata la legge per i brevetti software, vige la legge del diritto penale informatico locale. Nel caso specifico italiano, la reingegnerizzazione a scopo di interoperabilità con altri sistemi (e solo a questo scopo) è un atto pienamente lecito ai sensi dell'art. 64 della legge 633 del 22 aprile 1941, come modificata dall'art. 5 del D. Lgs. 518/1992, sia in senso "leggero" (qualora egli compia tali atti durante operazioni di caricamento, visualizzazione, esecuzione, trasmissione o memorizzazione del programma che egli ha il diritto di eseguire) che in senso di decompilazione vera e propria, ma solo al fine di permettere l'interoperabilità del software con altri programmi. L'accezione di software è estesa per analogia a concetti informatici quali il formato di un file o la struttura interna di un protocollo.
Altri scopi del reverse engineering comprendono il security auditing, la rimozione di protezione da copia ("Cracking"), l'aggiramento di restrizioni d'accesso spesso presenti in prodotti di elettronica di consumo, la pura curiosità, e la personalizzazione di sistemi embedded.