Patch (informatica)
Da Wikipedia, l'enciclopedia libera.
Indice |
[modifica] Significato primario: aggiornamento o correzione di software
La produzione di software, commerciale o libera, è usualmente soggetta ad errori di scrittura del codice e malfunzionamenti, chiamati in gergo bachi (in inglese bugs), che vengono scoperti successivamente al rilascio del software stesso.
Nel suo significato primario, patch (letteralmente "pezza") è un termine inglese che in informatica indica, come hot fix, un file eseguibile creato per risolvere uno specifico errore di programmazione, che impedisce il corretto funzionamento di un programma o di un sistema operativo. Tali files generalmente vengono rilasciati dagli stessi produttori, nell'attesa di pubblicare una nuova versione del software stesso.
[modifica] Service Pack
Software di grandi dimensioni, come ad esempio i sistemi operativi, dopo il rilascio sono soggetti a decine o centinaia di hot fix, e per rendere più agevole l'aggiornamento, periodicamente tutte le patch rilasciate vengono raggruppate in un unico eseguibile, che prende il nome di Service Pack. Microsoft, ad esempio, rilascia i Service Pack per Windows con una cadenza più o meno annuale.
Un Service Pack può essere di tipo incrementale, se raccoglie gli aggiornamenti solo a partire dal Service Pack precedente, oppure completo, se raccoglie tutti gli aggiornamenti a partire dal rilascio del prodotto, rendendo così non necessario aver già installato quello precedente.
Un Service Pack non dovrebbe, per definizione, aggiungere nuove funzionalità ad un software, ma limitarsi a correggerne i malfunzionamenti. Ci sono però frequenti eccezioni, quando ad esempio durante l'uso una funzionalità originaria, pur non presentando malfunzionamenti, si rivela insufficiente o mal progettata. È il caso ad esempio del Service Pack 2 di Windows XP, dedicato per l'80% ai problemi di sicurezza, che oltre alle correzioni dei bachi ha introdotto un nuovo firewall e le Directx 9.0c, oltre che a funzionalità del tutto nuove come il supporto Bluetooth.
Il rilascio di un Service Pack da parte di Microsoft è spesso accompagnato da critiche, soprattutto da parte di alcuni siti Internet: in genere si sostiene che l'installazione del Service Pack possa rendere instabile un sistema o addirittura bloccarlo. In realtà i problemi si verificano su una strettissima minoranza di sistemi, e le critiche sono in genere strumentali o sono vere e proprie leggende metropolitane. L'installazione di un Service Pack permette di mantenere il sistema protetto, soprattutto dalle falle di sicurezza.
[modifica] Significato secondario: rimozione (illegale) delle protezioni di un software
Secondariamente per patch si intende particolari tipi di crack il cui scopo è rimuovere a livello del codice assemblato le protezioni di un programma in modo da premetterne (illegalmente) l'uso senza le necessarie licenze.
Per dare la possibilità agli utenti di provare un programma prima di decidere se acquistarlo o meno, i programmatori distribuiscono gratuitamente versioni modificate di tali programmi. Queste modifiche rendono i programmi utilizzabili solo parzialmente (versioni Lite o Demo) o interamente ma solo per un determinato periodo di tempo (versioni Trial o Tryout), dopo di che gli utenti per andare avanti ad utilizzarli dovranno acquistarne la versione originale, quella senza limitazioni.
Attraverso il cracking, il cracker bypassa le limitazioni della versione protetta del programma e ne ottiene una perfettamente funzionante (detta versione craccata o warez), funzionante cioè al pari di quella che otterrebbe se decidesse di acquistare il programma stesso. Fatto questo ricorre all'uso di un patcher, un software che fa il confronto tra le due versioni differenti del programma, quella protetta e quella appena sbloccata, in modo da generare un eseguibile (la patch, appunto) che non ha altro scopo se non quello di ripetere lo stesso lavoro appena compiuto dal cracker. Una volta distribuita in rete, la patch viene scaricata da altri per sbloccare le loro copie di tale programma e farne un uso illimitato come se possedessero la licenza.
La quantità di bytes modificati per neutralizzare la protezione può variare da poche unità a diverse centinaia di migliaia di bytes. In genere una patch interviene su file eseguibili, ma a volte apporta modifiche anche (o solo) a file DLL. Non mancano i casi in cui oltre che apportare modifiche ad uno o più files già esistenti aggiungano o cancellino interi altri files. Quelli aggiunti devono per forza essere stati presi in "prestito" da una versione originale completa del programma, che il cracker stesso (o altri per lui) ha legittimamente acquistato.
Una patch può a sua volta avere dimensioni che variano da pochissimi kilobytes ad alcuni megabytes. Le dimensioni variano non solo a seconda delle modifiche che devono apportare ma anche a seconda delle dimensioni degli eventuali elementi di creatività aggiunti dal cracker per confezionare la patch stessa: alcune infatti durante l'esecuzione mostrano foto o disegni e/o riproducono delle musichette, nonché i crediti a scorrimento, come se fossero dei film.
Per poter funzionare, una patch deve trovare l'esatta versione del programma a cui si riferisce e l'esatta cartella in cui è stato installato il programma stesso. Inoltre capita spesso che una patch conservi il file originale convertendolo da exe a bak, in modo da poter annullare le modifiche.