Operiamo con il registro di configurazione di Winzoz per resettare il conteggio a scalare dei giorni in PSP7
Introduzione |
Tools usati |
URL o FTP del programma |
Notizie sul programma |
Essay |
ATTO I
cogitatio pre operatio
mumble... mumble.... (questa è la traduzione dal latino)
In primis bisogna capire cosa fare e soprattutto capire cosa fa
il prg.
Un prg. che tiene conto dei giorni ancora a disposizione di
solito fa due cose:
1_ prende nota della data in cui viene installato sul PC (NEL
SENSO CHE LA SCRIVE DA QUALCHE PARTE!!!)
2_ ogni volta che viene avviato confronta la data attuale con
quella iniziale, SCRIVE LA DIFFERENZA DA QUALCHE PARTE!!! e scala
i giorni (e non funziona rimettere indietro l'orologio di tot.
giorni xchè l'algoritmo del prg. si accorge che la nuova
differenza ottenuta tra GiornoAttuale e GiornoIniziale è
maggiore di quella precedente; in termini matematici si potrebbe
dire che quello che il prg. si aspetta nella differenza giorni è
una successione decrescente a zero e quindi non sono previste
improvvise risalite. Se invece l'orologio lo mandate avanti
funziona! nel senso che diminuiscono i giorni che avete a
disposizione ahz! ahz!)
Ora non resta che scoprire dove il prg. va a scrivere questi
dati.
Di solito viene scelto il registro di configurazione per la
difficoltà maggiore nel ritrovare i dati, infatti anche usando
un prg. come regmon che monitorizza tutti gli accessi al registro
devi districarti in una giungla di chiamate a vare chaivi. Un
file su disco invece è "più visibile" xchè
monitorando (con filemon ad esempio, sempre della sysinternals)
le invocazioni del prg a file esterni si ha a che fare con un
numero più limitato di chiamate (anche se esistono ugualmente
simpatici sotterfugi eh eh).
Domanda: ma se psp scrive queste informazioni nel registro allora
basta che io, al momento dell'installazione, faccia un'istantanea
del registry prima e dopo di modo da sapere quali chiavi ha
aggiunto così da cancellarle dopo averlo disinstallato. Poi lo
reinstallo e tutto funziona di nuovo!
Risposta: sciocchini! non è così bello! le suddette
informazioni psp non le scrive al momento dell'installazione MA
AL PRIMO AVVIO! La prima volta che lo avviate lui crea una chiave
nel registro e ci mette dentro i valori. Il ragionamento fila se
voi le istantanee le fate prima e dopo averlo avviato (provate,
è un diverso sistema di ricerca. Usate magari RegSnap -->
http://webdon.com)
I INTERLUDIO
Dunque... ora la cosa si fa un po' più difficile ma solo xché
rischio di incartarmi a causa di informazioni nozionistiche che
vi devo dare per capirci meglio dopo.
Una sezione assai importante del registry è la sottochiave CLSID
contenuta in HKEY_CLASSES_ROOT. In questa sottochiave sono
contenute delle chiavi con nomi esadecimali (come ad esempio
{BBAC09B1-05A9-4E4F-93BA-1E409D52A268}) ognuna delle quali è
riferita UNIVOCAMENTE ad un solo software. Mi spiego meglio:
invece che mettere alle chiavi i nomi dei prg che le hanno
generate (e rendere così la lettura del registry più
comprensibile!!!) viene assegnato ad ogni prg uno o più codici
esadecimali che verranno poi utilizzati da lui e lui solo per
identificarsi all'interno del registry (N.B. anche versioni
differenti dello stesso software hanno codici esadecimali
differenti). Chi assegna questi codici? Un ente americano
preposto a questa funzione (almeno mi sembra...). Naturalmente
nessuno vi vieta di farvi un prg vostro e crearvi vostri codici
senza chiederli all'autorità competente, ma se poi installate un
prg che GUARDACASO ha gli stessi codicilli FATE UN BEL BOTTO!
ATTO II
De Rerum Crakkora
Partiamo all'attacco (questa non è la traduzione dal latino... a
dire il vero nemmeno l'altra eh! eh!)
Ora abbiamo tutti i dati tecnici, non resta che scoprire quali
sono 'ste benedette chiavi e i valori.
E qui entra in ballo REGMON e anche un po' di culo! (sherzo!
REGMON non serve! eh eh... piaciuta?)
Prima lanciamo Regmon e poi psp7: questo prg si occupa di listare
tutte le chiamate che vengono fatte al registry e, poichè quando
avviamo un prg le chiamate non vengono fatte solo da lui (ci si
mette ad esempio anche la shell di winzoz, explorer.exe - da non
confondere con iexplore.exe che è il browser per la navigazione
internet - ) occorre subito settare un bel filtro. Non appena
abbiamo visto il nome che ha il prg che vogliamo monitorare
(colonna PROCESS di Regmon), nel nostro caso si chiama psp,
clicchiamo su FILTER e alla voce PROCESS INCLUDES, cancelliamo
l'* e scriviamo psp. Ora occorre chiudere regmon e riavviarlo per
fare in modo che le modifiche abbiano effetto, ma prima chiudiamo
anche psp7.
Quidi ora avremo monitorate solo le chiamate al registry fatte da
psp7... e come potete vedere sono circa 5000! solo per avviare il
prg e poi continuano ad aumentare xché psp7 - a differenza delle
vers. precedenti - fa continuamente degli accessi( che xò a noi
non interessano).
Ora viene il bello!
Come faccio a sapere quali chiamate sono quelle che interessano a
me?
Bene io vi dico subito che la prima volta che ho crakkato psp -
ed era la versione 5 - me le sono spulciate quasi tutte, e ho
capito il trucchetto della CLSID (anche se ci tengo a ribadire
che non tutti i software con conteggio a scalare usano questo
sistema!).
Dunque per ottimizzare ancora il lavoro, imposto un altro filtro:
alla voce PATH INCLUDES cancelliamo l'* e scriviamo HKCR\CLSID\*
che stà a significare "monitorizza tutti gli accessi ad
ogni sottochiave contenuta in HKEY_CLASSES_ROOT\CLSID".
Ed ecco... magia magia... i processi da controllare sono appena
27! (24 se è la prima volta che eseguite psp7) e che volete di
più?
Almeno questi però ce li spulciamo uno ad uno così capiamo cosa
succede :-)
II INTERLUDIO
Facciamo ora una breve panoramica di Regmon.
Ricordo che io uso la ver. 4.11 di regmon; quelle più recenti
hanno anche altri campi oltre a quelli qui descritti.
# (cancelletto... che nome assurdo!)
La prima colonna identifica l'ordine temporale degli accessi
fatti dal prg al registry.
PROCESS
La seconda colonna identifica il nome del prg che fa la chiamata.
REQUEST
La terza colonna specifica il tipo di chiamata, e qui mi
soffermo:
OpenKey --> Ovviamente apre una chiave del registry
QueryValueEx --> Preleva dalla chiave aperta un valore
(string, dword o binary)
CloseKey --> Chiude la chiave del registry
SetValueKey --> Scrive o Riscrive nel registry un valore
CreateKey --> Crea una nuova chiave (la prima volta che
lanciate psp7 se ci fate caso c'è questo tipo di chiamata)
PATH
La quarta colonna visualizza il percorso fatto nel registry per
trovare la chiave o il valore richiesto
RESULT
Può anche succedere che un parametro richiesto dal prg non
esista più.
In questa colonna vi viene detto se l'operazione eseguita
(REQUEST) ha avuto successo o meno
OTHER
Qui vengono elencate ulteriori informazioni:
Per le chiamate alle chiavi viene di solito elencato un valore
esadecimale del tipo hKey: 0xC29B5F80 che penso stia ad
identificare la locazione in eseadecimali della chiave nel
registry.
Per le richieste di valori invece di solito viene visualizzato il
dato contenuto nel valore (ricordo che nel registry con valori
vengono identificate le variabili string, dword e binary, e con
dati i valori a loro assegnati).
Se di questo ultimo discorso c'avete capito poco, fregatevene! il
campo OTHER tanto non ci serve!
Volevo solo soddisfare i più curiosi.
ATTO III
Ave Caesar! Morituri te salutant!
Ovvero cancelliamo la chiave dal registry e speriamo bene!
Bene ora possiamo davvero iniziare il divertimento!
Poichè psp7 deve leggere i dati relativi alla data di
installazione, alla precedente differenza giorni e
successivamente scrivere i nuovi valori, andiamo a cercare i
REQUEST QueryvalueEx e SetValueEx. Di QueryvalueEx ce ne sono
diversi ma due in particolare hanno la stessa PATH di altre due
righe (in Regmon) dove però il REQUEST è un SetValueEx! e sono
precisamente
HKCR\clsid\{BBAC09B1-05A9-4E4F-93BA-1E409D52A268}\PersistentHandler\Tfr
HKCR\clsid\{BBAC09B1-05A9-4E4F-93BA-1E409D52A268}\PersistentHandler\Nus
dove Tfr e Nus sono due valori che vengono prima letti e poi
riscritti.
Non resta che andare alla sottochiave del registry
HKCR\clsid\{BBAC09B1-05A9-4E4F-93BA-1E409D52A268}\PersistentHandler
Per farlo è sufficiente cliccarci due volte col mouse e regmon
aprirà automaticamente regedit andando a quella sottochiave (NB:
se la colonna RESULT relativa a quella riga in regmon avesse
avuto il valore FALSE -cioè non esistesse il valore o la
sottochiave cercati-, regmon avrebbe aperto il registry e si
sarebbe posizionato alla chiave precedente, generando anche un
segnale acustico).
Okkappa ora siamo nel registry alla sottochiave
...\PersistenHandler
E ora?
INNANZITUTTO FACCIO UNA COPIA DI BACKUP DI QUELLA SOTTOCHIAVE PER
SICUREZZA!
poi la seleziono col pulsante dx e scelgo ELIMINA!
Ora trepidante avvio nuovamente Psp7 e... nella mascherina di
inizio in alto a dx leggo
"You are on day 1 of your 30 day evaluation period"
Se ora andate nel regedit e provate a fare un refresh (tasto F5)
vedrete che la sottochiave appena eliminata è riapparsa! Logico!
Avete appena riavviato psp7 e lui ha ricreato la chiave mettendo
come DataInizio quella di oggi!
P.S. Se chi legge ha una versione più vecchia di psp tipo la 6 o
la 5, deve fare esattamente lo stesso ragionamento, solo che il
nome delle chiavi e dei valori cambia! Provate a trovarle e se
non ci riuscite mandatemi una mail...
P.S.2 Dalla versione 6 Psp è corredato anche dell'Animation Pro
un prg per realizzare gif animate con lo stesso metodo di
protezione ma, ovviamente, con chiavi diverse. Vale lo stesso
discorso, se non le trovate, una mail...
EPILOGO
De gustibus non est disputandum
Ovvero la spiegazione finisce qui ma... se volte sapere come
rendere questo procedimento più elegante, cioè fare in modo che
winzoz una volta al mese cancelli da se 'ste chiavi dal registry,
SENZA RICORRERE ALLA PROGRAMMAZIONE!, seguitemi.
Avete capito bene, anche voi lettori che siete a digiuno di
qualsiasi linguaggio di prg non abbiate timore, useremo solo
quello che la natura ci ha fornito: il nostro acume e i mezzi
messi a disposizione dal nostro S.O..
Oddio, useremo anche un'altra cosina, un file chiamato
unwise.exe, che quasi sicuramente già avete sul vostro pc senza
nemmeno saperlo (dovrebbe stare in C:\WINDOWS, ma per sicurezza
usate il trova).
Di solito i prgs che mettiamo sul pc vengono confezionati per
l'installazione tramite un altro prg. Due dei più usati sono
l'Install Shield e il Wise.
Il Wise ha di bello che per fare la disinstallazione automatica,
crea durante l'installazione un file di log (in cui vengono
elencate le cartelle create, i files copiati, le modifiche fatte
ai files di sistema, LE MODIFICHE FATTE AL REGISTRY) che poi
verrà usato cou un eseguibile, l'unwise.exe appunto.
Quindi va da se che, se capite la struttura del file log che Wise
crea, è possibile crearsi un proprio log con dentro solamente le
chiavi del registry che ci interessa eliminare e utilizzare
unwise.exe.
Dopodichè basta utilizzare l'agente di sistema di winzoz e
programmare l'esecuzione di unwise.exe con il nostro file di log
una volta al mese.
Ecco quasi quasi la prossima spiegazione la faccio proprio sulla
struttura dei log da usare con unwise.exe, che ne dite?
|
Direi che è tutto. Un ringraziamento particolare a Quequero e
a tutte le meravigliose persone che come lui pensano che la
conoscenza vada condivisa.
Un saluto alla mia mamma.
Disclaimer |