Copy Link
Add to Bookmark
Report

Crakkare PaintShopPro 7

(NON è UN REVERSING!!!)

DrWatson's profile picture
Published in 
guide hacker
 · 5 years ago

Introduzione


PRIMA DI TUTTO LEGGETEVI L'ANTEFATTO IN FONDO ALLA PAGINA! (che sarebbe poi il Disclamer)

Musica ascoltata:
Ameno, Mother, Chatar Rythm... insomma tutto l'album! degli ERA
(scaricato interamente da Napster eh! eh!)

Cibi assunti:
nessuno (non mangio quando lavoro)

Requisiti:
Discreta conoscenza del registro di configurazione di winzoz '95/'98

Tools usati


Regmon.exe ver. 4.11 --> http//:www.sysinternals.com
(io ho anche la ver. 4.24 ma è peggiorato il settaggio dei filtri quindi continuo ad usare quella più vecchia)...Siamo in due :)

URL o FTP del programma


www.jasc.com

Notizie sul programma


PROLOGO
Dunque... come ho scritto nel titolo qui non si parla di reversare psp7 (anche xché io il reversing lo stò imparando ora eh eh) ma semplicemente di aggirarne le difese azzerando il conteggio dei giorni.
Per chi non sapesse di cosa stiamo parlando vi dico innanzitutto che PSP7 è un'programma di fotoritocco di immagini bitmap della Jasc (secondo me molto ben fatto, altrimenti vi pare che mi sarei scervellato per crakkare un prg cesso?) reperibile in versione shareware un po' ovunque (io l'ultima versione l'ho trovata sul cd allegato a PC World - e ce la mettono tutti i mesi -). Questo programma viene dato completo di tutte le sue funzioni con una limitazione d'uso a scopo valutativo di 30 gg. (che poi in realtà funziona per 90 gg. e addirittura le versioni + vecchie non smettevano mai di funzionare): infatti quando lo avviate vi appare una maschera con due bottoni START e ORDER e il conteggio dei giorni; finito il periodo di valutazione START si disabilita e non è + possibile entrare nel prg.
Vi è per caso venuto in mente di disinstallare il prg e reinstallarlo per avere a disposizione un altro periodo di prova? ILLUSI, non funziona ( e dopo vediamo xchè).

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?

Note finali


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


ANTEFATTO (che dovrebbe stare in cima xchè si chiama ante-fatto appunto!)
Ci tengo a precisare che tutto quello che leggerete è da considerarsi a puro scopo didattico!
Le modifiche delle chiavi del registro di configurazione qui descritte sono considerate ILLEGALI! (incredibile è? però è così! quindi okkio! rimettete tutto a posto dopo aver fatto pratica ;-)
L'autore non si assume alcuna responsablità degli eventuali danni che arrecherete al vostro beneamato PC. In ogni caso vi rammento la regola d'oro: prima di operare col registro di configurazione FATE UNA COPIA DI BACKUP!
I programmi shareware devono comunque essere registrati dopo il periodo di valutazione!
Capito?!

← previous
next →
loading
sending ...
New to Neperos ? Sign Up for free
download Neperos App from Google Play
install Neperos as PWA

Let's discover also

Recent Articles

Recent Comments

Neperos cookies
This website uses cookies to store your preferences and improve the service. Cookies authorization will allow me and / or my partners to process personal data such as browsing behaviour.

By pressing OK you agree to the Terms of Service and acknowledge the Privacy Policy

By pressing REJECT you will be able to continue to use Neperos (like read articles or write comments) but some important cookies will not be set. This may affect certain features and functions of the platform.
OK
REJECT