Reverse engineering: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Corretto errore di battitura
Etichette: Modifica da mobile Modifica da web per mobile
m rimossa Categoria:Informatica usando HotCat
 
(39 versioni intermedie di 21 utenti non mostrate)
Riga 1:
{{F|ingegneria|agosto 2009}}
'''''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>
 
L<nowiki>'</nowiki>'''ingegneria inversa''' (dall'inglese ''reverse engineering'') consiste nell'analisi dell'impiego, della collocazione, del funzionamento, dell'aspetto geometrico e di materiale di un [[manufatto]] o di un [[oggetto]] che è stato rinvenuto (ad esempo un reperto, un dispositivo, [[componente elettrico]], un meccanismo, [[software]]). 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<ref>[http://www.quequero.org Cos'è il reverse engineering?]</ref>.
 
== Processo classicoDescrizione ==
In molti casi il processo produttivo di un oggetto inizia con la creazione manuale di una scultura realizzata da un artista o da un designer con materiali come legno, creta o speciali plastiche. Il prototipo viene modellato in modo tale da conferirgli specifiche caratteristiche funzionali ed estetiche; spesso però, viene poi cambiato durante il ciclo produttivo. Nel caso di superfici a geometria libera, i cambiamenti alle parti originali del progetto sono molto difficili da effettuare, spesso non possono essere neppure analizzati o descritti in rapporto al disegno originale. Appare chiara, quindi, l'utilità di una tecnica finalizzata alla creazione, in modo automatico ed in tempi brevi, del modello [[Computer-aided design|CAD]] dell'oggetto fisico da realizzare. Il compito dell'ingegneria inversa è proprio quello di soddisfare questa esigenza. Partendo da un prototipo, o da un oggetto che si vuole ricostruire, o da parti specifiche delle quali si vogliono effettuare particolari analisi, mediante il processo di ingegneria inversa, ricavare il relativo modello CAD. Questo viene utilizzato per effettuare agevolmente la modifica di parti esistenti, lo sviluppo di nuove parti, l'analisi dimensionale e dare il via al processo produttivo (CAM process).
In molti casi il processo produttivo di un oggetto inizia con la creazione manuale di una
scultura realizzata da un artista o da un designer con materiali come legno, creta o speciali
plastiche. Il prototipo viene modellato in modo tale da conferirgli specifiche caratteristiche
funzionali ed estetiche; spesso però, viene poi cambiato durante il ciclo produttivo. Nel caso di superfici a geometria libera, i cambiamenti alle parti originali del progetto
sono molto difficili da effettuare, spesso non possono essere neppure analizzati o descritti
in rapporto al disegno originale. Appare chiara, quindi, l'utilità di una tecnica finalizzata alla
creazione, in modo automatico ed in tempi brevi, del modello CAD dell'oggetto fisico da
realizzare. Il compito dell'ingegneria inversa è proprio quello di soddisfare questa esigenza.
Partendo da un prototipo, o da un oggetto che si vuole ricostruire, o da parti specifiche delle quali si vogliono effettuare
particolari analisi, mediante il processo di reverse engineering, ricavare il relativo modello
CAD. Questo viene utilizzato per effettuare agevolmente la modifica di parti esistenti, lo
sviluppo di nuove parti, l'analisi dimensionale e dare il via al processo produttivo (CAM
process).
 
Significato e scopi della reingegnerizzazione inversa:
Line 22 ⟶ 11:
# Digitalizzazione della superficie.
# Editing e filtraggio dei dati di misura.
# Segmentazione e creazione dei [[Modello matematico|modelli matematici]].
# Creazione dei modelli CAD.
 
== InNelle informaticavarie discipline ==
=== Architettura ===
L'ingegneria inversa in informatica è, {{Chiarire|per definizione|di chi?}}, "''il processo di analisi di un sistema software esistente, eseguito al fine di crearne una rappresentazione ad alto livello di astrazione.''"
A partire dalla fine degli anni ottanta alcuni architetti di fama internazionale, come [[Frank Owen Gehry]], si avvalgono di questa tecnica per poter progettare al meglio le loro architetture. Queste opere sono costituite principalmente da [[superfici]] libere, di difficile gestione da parte di programmi CAD tradizionali.
Infatti la progettazione di tali edifici comincia da un modello tridimensionale reale, come un plastico o addirittura una vera e propria scultura che poi verrà scansionata con uno scanner 3D per digitalizzare tali forme e viene poi gestita per mezzo di software di modellazione 3D.
Questa procedura è afferente al mondo CAE ([[Computer-aided engineering|Computer Aided Engineering]]), che attraverso sofisticati sistemi di scansione, permette di acquisire i dati di superficie di topologie anche complesse di prototipi artigianali e di restituirli sotto forma di modelli di superfici all'interno dell'ambiente di lavoro digitale. Questa tecnica è particolarmente usata nel mondo informatico della [[Motion capture|Motion Capture]].
 
=== Informatica ===
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 il ridisegno.
L'ingegneria inversa in informatica è, {{Chiarire|per definizione|di chi?}}, "''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 illa ridisegnoriprogettazione.
Per affrontare seriamente la retro ingegneria in ambito software sono essenziali conoscenze di [[Assembly]], programmazione e logica.
 
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 un 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 lettori Mp3<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 |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> nonché quello dei titoli videoludici ai quali è stata aggiunta la funzionalità multigiocatore, originariamente non prevista.
 
In genere, le pratiche di ingegneria inversa vengono utilizzate quando una casa sviluppatrice mantiene unil 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. È stata ampiamente impiegata durante la [[seconda guerra mondiale]] e la [[guerra fredda]].
 
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]]}}.
 
Altri scopi dell'ingegneria inversa comprendono le verifiche di vulnerabilità, la rimozione della protezione da copia, l'aggiramento di restrizioni d'accesso (spesso presenti nei prodotti d'[[elettronica di consumo]]) e la personalizzazione di [[sistema embedded|sistemi]] <nowiki/>integrati.
 
== La legislazione nel mondo ==
=== Stato legislativo ===
La retro ingegneria informatica, applicata cioè a sistemi software o hardware con scopi di [[interoperabilità]], per esempio al fine di supportare formati di file o periferiche hardware non documentati, {{cn|è prevalentemente ritenuta legale}}, sebbene i detentori spesso facciano valere i loro brevetti. Tuttavia, poiché nell'[[Unione europea]] la legge per i brevetti software non è mai stata approvata, si applica 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 di rete|protocollo]].
 
=== In architetturaItalia ===
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 22 aprile 1941, n. 63]] come modificata dall'art. 5 del 29 dicembre 1992 n. 518, 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 di rete|protocollo]].
A partire dalla fine degli anni ottanta alcuni architetti di fama internazionale, come [[Frank Owen Gehry]], si avvalgono di questa tecnica per poter progettare al meglio le loro architetture. Queste opere sono costituite principalmente da [[superfici]] libere, di difficile gestione da parte di programmi CAD tradizionali.
Infatti la progettazione di tali edifici comincia da un modello tridimensionale reale, come un plastico o addirittura una vera e propria scultura che poi verrà scansionata con uno scanner 3D per digitalizzare tali forme e viene poi gestita per mezzo di software di modellazione 3D.
Questa procedura è afferente al mondo CAE ([[Computer Aided Engineering]]), che attraverso sofisticati sistemi di scansione, permette di acquisire i dati di superficie di topologie anche complesse di prototipi artigianali e di restituirli sotto forma di modelli di superfici all'interno dell'ambiente di lavoro digitale. Questa tecnica è particolarmente usata nel mondo informatico della [[Motion Capture]].
 
== Note ==
Line 51 ⟶ 43:
 
== Bibliografia ==
* {{Cita libro |autore=Francesco De Luca, |autore2=Marco Nardini, “Dietro|titolo=Dietro le quinte. Tecniche d'avanguardia nella progettazione contemporanea.”, |collana=Universale di architettura |numero=135 a cura di |curatore=A. Saggio, |editore=Testo & Immagine |cid=Francesco De Luca}}
* C.K. Song and S.W. Kim, Reverse Engineering: Autonomus Digitization of Free-Formed Surfaces on a CNC Coordinate Measuring Machine. Int. J. Mach. Tools Manufact, Vol. 37 (7), 1041-1051, 1997.
* Bruce{{Cita Lindsey,libro |autore=Gehry digitale,Bruce Lindsey |titolo=Resistenza materiale/Costruzione digitale, |collana=Universale di architettura n.|numero=108 a cura di |curatore=A. Saggio, |editore=Testo & Immagine, |città=Torino |anno=2002 |cid=Gehry Bruce Lindsey, 2002.}}
* {{Cita libro |autore=C.K. Song and |autore2=S.W. Kim, |titolo=Reverse Engineering:. Autonomus Digitization of Free-Formed Surfaces on a CNC Coordinate Measuring Machine. Int. J. Mach. |editore=Tools Manufact, Vol. |volume=37 (7), |pp=1041-1051, |anno=1997 |lingua=en |cid=C.K. Song e S.W. Kim, 1997}}
* Francesco De Luca, Marco Nardini, “Dietro le quinte. Tecniche d'avanguardia nella progettazione contemporanea.”, Universale di architettura 135 a cura di A. Saggio, Testo & Immagine
 
== Voci correlate ==
Line 66 ⟶ 58:
 
== Altri progetti ==
{{interprogetto|preposizione=sul}}
 
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* {{cita web|http://quequero.org|Università Italiana Cracking|lingua=en}}
* {{FOLDOC||reverse engineering}}
 
{{Controllo di autorità}}
{{portale|ingegneria|diritto|sicurezza informatica|informatica}}
 
[[Categoria:Hacking]]
[[Categoria:Cracking]]
[[Categoria:IngegneriaHacking]]
[[Categoria:InformaticaDiscipline ingegneristiche]]