“Lavorare” su un videogioco (o su un qualsiasi programma, per copiarlo o rimuovere le protezioni) è molto duro e il risultato è spesso frutto dello sforzo congiunto di tante persone.
Per essere precisi bisogna innazi tutto distinguere la duplicazione dalla sprotezione.
La prima non richiede particolari abilità tecniche in quanto si realizza semplicemente utilizzado programmi specifici o copiando le cassette con normali registratori, almeno all’inizio.
L’evoluzione dei programmi di copia è infatti il miglior indice del livello di complessità che caratterizza lo sviluppo del Software.
Le prime utility di copia ad esempio non potevano essere utilizzate con Software la cui dimensione era maggiore della memoria lasciata libera dall’utility stessa (in pratica, se su 48 kb, 5 kb erano occupati dal programma, si poteva duplicare al massimo una mole di 43 kb di dati).
Il problema venne superato da quello che diventò per diverso tempo lo standard fra i copiatori in ambiente Sinclair, il Pirate7b col quale era possibile copiare veramente di tutto anche oltre il limite della memoria disponibile.
La reazione delle case fu il turbo-header, che rendeva impossibile l’utilizzo del Pirate7b e nello stesso tempo molto diffcile la duplicazione audio.
In un gioco della vecchia generazione le informazioni che lo riguardano sono contenute in una serie di segnali iniziali che appunto costituiscono l’header, riprodotto a una certa frequenza. Considerando che il registratore utilizzato per il caricamento non aveva grandi caratteristiche tecniche e che anche un minimo errore di duplicazione poteva causare il fatale e odiatissimo tape loading error, vennero realizzati degli header chiamati “turbo”, che rendevano praticamente inutilizzabile la copia audio. A superare l’ostacolo giunse il Lerm TC7, che riusciva a “bersi” anche l’header più turbizzato del mondo!
Su macchine (allora) più evolute come la serie 1040 di AtariST e erano disponibili dei programmi che addirittura effettuavano una blind copy del dischetto.
Esistono però dei sistemi contro i quali non c’è duplicatore che tenga, come il dongle (la chiave hardware) e la protezione mediante codici.
Il dongle contiene una eprom preprogrammata e funziona schematicamente in questo modo: lo si collega a una porta libera (di solito si frapponeva al joystick) e poi si lancia il programma. Nel corso del caricamento una routine va a cercare certi dati nel dongle; se la chiave hardware è fisicamente installata ed è possibile ottenere la risposta necessaria per andare avanti, allora tutto bene, altrimenti il gioco non parte. Questo sistema veniva adottato, fra gli altri, dagli autori di CUBASE uno dei sequencer per Atari (ora anche per PC) più diffusi sulla piazza.
Il meccanismo dei codici d’accesso era ancora più semplice: per giocare, il computer richiedeva l’imissione di una certa parola contenuta nel manuale originale del gioco, o di altri dati facenti parte di un cifrario; se non si disponeva di questo strumento, niente partite. Chi ha giocato a Manic Miner sa che cosa voglio dire!
Questi meccanismi di protezione spostano l’attenzione dall’impedire la copia all’impedire l’utilizzo della stessa; in altri termini il Software è liberamente duplicabile; tanto, se no si possiede il codie o la chiave, non si gioca.
Per superare questo tipo di protezione è necessario il vero e proprio cracking.
Questa tecnica, che richiede una più che buona preparazione, consiste nello “smontare” un programma e cercare la linea di codice che va a effettuare quella certa chiamata al dongle.
Una volta ricevuta la risposta, si “congela” quel momento facendo in modo che il computer formuli sempre la stessa domanda e che si risponda sempre con la stessa risposta.
Una volta sprotetto il gioco poteva essere duplicato con i sistemi ordinari, ma un aspetto molto antipatico del cracking è che spesso gli “interventi di manutenzione” provocano danni al resto del programma compromettendo le funzionalità…meglio di niente!
Per quanto riguarda invece l’inserimento di parole chiave preso spesso dal manuale del gioco, un modo molto “italiano” era quello di far circolare il dischetto o la cassetta del videogame copiato e le fotocopie cartecee del manuale dal quale prendere poi le parole chiave da inserire nel gioco.
Un altro sistema era anche qui seguire il programma con un disassembler e leggere in forma ASCII la parte di codice che conteneva queste parole. Usare questa tecnica era abbastanza semplice nei primi gichi, perchè le uniche cose che, lette con un disassembler in ASCII, avevano senso erano le scritte della presentazione (spesso anche queste venivano cambiate con i soprannomi dei cracatori) e le parole chiave. Tutto il resto era pensato solo in esadecimale per cui in ASCII l’output era una sequenza insensata di caratteri; una volta individuate era un gioco da ragazzi digitare le parole chiave e cominciare la partita.
Anche questo tuttavia presto venne considerato un modus operandi troppo rozzo, anche se non alla portata di tutti. Il capolavoro - e quindi la sfida - è scrivere un programma che , lanciato, “cracca” il gioco, cioè sostituisce delle righe di codice all’interno del gioco stesso bypassando cpsì le protezioni attivate dal creatore del programma. Questa è decisamente una tecnica molto difficile, e di persone in grado di metterla in pratica in Italia ce n’erano veramente poche. In effetti la maggior parte dei programmi di crack arrivavano dall’estero a volte insieme al programma stesso, attraverso circuiti e contatti che alcuni italiani avevano stretto con gruppi di courier in giro per il mondo. Una volta sprotetti, questi programmi venivano anche venduti nei negozi, contro la volontà di molti smanettoni che istintivamente si ritenevano soddisfatti di essere gli scopritori del trucco o al massimo di capire come funzionava il crack: un vero e proprio mondo sommerso di ragazzini che volevano sapere come funzionano i computer.
Psicoanalisi di un software
Lascia un Commento