Reverse engineering: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
aggiungere fonti
mNessun oggetto della modifica
Riga 2:
'''''Reverse engineering'''''<ref name="treccani">{{Treccani|reverse-engineering_(Neologismi)|Reverse engineering|v=x|volume=Neologismi|data=2008}}</ref> (in [[Lingua italiana|italiano]] "ingegneria inversa", "ingegnerizzazione inversa") è un [[anglicismo]] che indica quell'insieme di analisi delle funzioni, degli impieghi, della collocazione, dell'aspetto progettuale, geometrico e materiale di un manufatto o di un oggetto che è stato rinvenuto (ad esempio un reperto, un dispositivo, componente elettrico, un meccanismo, software).<ref name="treccani" /><ref>{{Cita web |url=http://quequero.org/UIC_Faq#Che_differenza_c.27.C3.A8_tra_Cracking_e_Reverse_Engineering.3F |titolo=Che differenza esiste tra Cracking e Reverse Engineering |sito=Università Italiana Cracking |accesso=9 marzo 2010 |urlarchivio=https://web.archive.org/web/20090803180834/http://www.quequero.org/UIC_Faq#Che_differenza_c.27.C3.A8_tra_Cracking_e_Reverse_Engineering.3F |dataarchivio=3 agosto 2009 |urlmorto=sì }}</ref>
 
Il fine può essere quello di produrre un altro oggetto che abbia un funzionamento analogo o migliore, o più adatto al contesto in cui ci si trova (''fitting''); un altro fine può essere, quello di tentare di realizzare un secondo oggetto in grado di interfacciarsi con l’originale.
 
== Descrizione ==
Riga 21:
 
=== Informatica ===
L'ingegneria inversa in informatica è "''il processo di analisi di un sistema software esistente, eseguito al fine di crearne una rappresentazione ad alto livello di astrazione.''".
 
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. Il termine [[reingegnerizzazione]], invece, comprende, oltre all'analisi, anche la riprogettazione.
 
Per affrontare seriamente la retro ingegneria in ambito software sono essenziali conoscenze di [[Assembly]], programmazione e logica, incluse conoscenze architetturali della piattaforma su cui si vuole analizzare il software<ref>{{Cita web|url=https://libro.re/capitoli/0x1-introduzione/|titolo=Capitolo 0x1: Introduzione al Reverse Engineering {{!}}|sito=libro.re|accesso=2023-02-07}}</ref>.
 
In genere, le pratiche di ingegneria inversa vengono utilizzate quando una casa sviluppatrice mantiene il codice proprietario per i suoi prodotti. A quel punto, il "retro-ingegnere " analizza i programmi e cerca di capirne il funzionamento senza avere a disposizione un codice sorgente. Alternativamente, l'ingegneria inversa ha anche il fine di ampliare le funzionalità di dispositivi e/o applicativi oltre quelle originali. Eloquente, a tal proposito, il caso dei [[Lettore MP3|lettori Mp3]], nonché quello dei titoli videoludici ai quali è stata aggiunta la funzionalità [[multigiocatore]], originariamente non prevista.
 
L'ingegneria inversa è anche usata dalle [[forze armate]] al fine di copiare la [[tecnologia]] di altre nazioni, spesso in congiunzione a operazioni di [[spionaggio]] militare. {{cn|È stata ampiamente impiegata durante la [[seconda guerra mondiale]] e la [[guerra fredda]]}}.