6 corso newbies


27/9/2000

by "Pispola"

 
 

UIC's Home Page

Published by Quequero


.....Quando saro' Grande potro' fare quello che voglio ?

Weee, ebbravo Pispola, che tralaltro ci ha presentato pure Raabbit? Come chi è......Ma è ovvio....La sua amante..hehehe, non scherzo, è il figlioletto che presto supererà il papino, forza raabbit :)

......Non si vive Mai cosi' a lungo.

Raabbit

UIC's form
E-Mail:pispola_@tin.it
On-IRC:Pispola, irc.Azzurra.it #Crack-it - FlashNET Crack-it
UIC's form

Difficoltà

(X)NewBies ( )Intermedio ( )Avanzato ( )Master

 

Cerchiamo di capire come risolvere il 6 corso della UIC


Sesto corso Newbies
Written by Pispola

Introduzione

Non Perdiamo Tempo ;-)

Tools usati

Softice
Regmon

URL o FTP del programma

http:\\quequero.cjb.net

Notizie sul programma 

Questo e' un CrackMe ideato da AndreaGeddon per farci capire le 2 palle che ti vengono quando devi Toccare il registro di Windog

Essay

Allora Eccoci difronte ad un altro appuntamento con Un CrackMe di Andrea:

Avanti, Visto che dobbiamo sniffare cosa il programma legge dal registro di Windoz mettiamo in esecuzione il Prog. Regmon (che da ora chiamero' Reg) e vediamo che ci consiglia.

Facciamo partire il Target e vediamo che Reg ci dice OpenKey HKCU\AndreaGeddon --------------> Result : NOT FOUND.

PS. Siccome vicino a me c'e' Raabbit mi permetto di scrivere qualche impressione o frase usata da lui.

Bha che serva una chiave Chiamata AndreaGeddon nella HKEY_CURRENT_USER ?

<Raabbit> proviamo a crearla e vediamo che dice

doppio Click sulla riga dove il Reg ci dice NOT FOUND e ci troviamo nel registry,Selezioniamo HKEY_CURRENT_USER tasto Destro Nuovo Chiave e digitiamo il nome della chiave (AndreaGeddon) Chiudiamo Regedit e riproviamo. 

Ben fatto il primo livello e' superato

<Raabbit> Ma che cazzata tutto qui?

Ok Proseguiamo col prossimo livello

pigiamo il 2 tastino e il reg ci dice che non puo' aprire la sottochiave 1 di AndreaGeddon :

OpenKey HKCU\AndreaGeddon\1 --------------> Result : NOT FOUND.

E noi la creiamo (anzi la crea Raabbit), ripigiamo il 2 tastino e ci dice che non e' del tutto giusta infatti il Reg ci segnala un NOT FOUND su :

OpenKey HKCU\AndreaGeddon\1\2 --------------> Result : NOT FOUND.

Vabbe' si crea la sottochiave 2

Ma non e' sufficente il Target ci chiede la sottochave 4

OpenKey HKCU\AndreaGeddon\1\2\4 --------------> Result : NOT FOUND.

Ok creiamola e vediamo se ce ne sono ancora molte perche' mi son rotto un pochino ;-)))))

COOL ! e' fatta si passa al 3 livello

<Raabbit> Dammi un 5!!!!!

3 Livello :

Pigiamo e : Sei in un mondo Fittizio.......

Hmmm che serve ? vediamo il Reg

OpenKey HKCU\AndreaGeddon\WhatIsTheMatrix --------------> Result : NOT FOUND.

E creiamo la chiave WhatIsTheMatrix , Ma Andrea non e' ancora contento (che vorra questo baldo Giovane) ;-)

riguardiamo il Reg. evediamo un Query Value Ex

QueryValueEx HKCU\AndreaGeddon\WhatIsTheMatrix\WelcomeToTheRealWorld --------------> Result : NOT FOUND.

A questo punto non creeremo una chiave ma una Stringa all'interno di HKCU\AndreaGeddon\WhatIsTheMatrix

Ed assegnamo un valore a caso (visto che non sappiamo quello Giusto). io inserisco Pispola

ed il Reg ci risponde cosi:

QueryValueEx HKCU\AndreaGeddon\WhatIsTheMatrix\WelcomeToTheRealWorld --------------> Result : SUCCESS 50 69 73 70 6F 6C 61

Cioe' il valore che abbiamo dato alla stringa gli va anche bene per aprire la chiave ma ci dice anche :

CloseKey ------------->Result: BADKEY (La chiave non e' Esatta)

e quale sara' la chiave giusta ?

A questo punto cominciamo a tracciare il programma con sice.

BPX su RegQueryValueExa ,

F12 e ci troviamo in questo punto

:00401795 test eax, eax

Steppiamo un po' (F8) ed ariviamo a questa istruzione

:004017B1 mov al, byte ptr [edi+ebx] si nota che viene caricato in al il primo carattere del mio nome (50)

:004017B4 mov cl, byte ptr [esp+edi+18] e qui viene caricato il carattere T (54)

:004017B8 cmp al, cl in questo punto avviene il confronto

Atroce dubbio sorge nella nostra mente :

editiamo cosa contiene edi+ebx ( in sice D edi+ebx) = Pispola ops il mio valore inserito

editiamo cosa contiene esp+edi+18( in sice D esp+edi+18) = Trinityy

Che sia il valore corretto ? ora proviamo. :-)

andiamo a cambiare il valore nel Registry da Pispola a Trinityy e vediamo

bene era il valore giusto si va verso il 4 livello.

Apriamo ancora Reg e vediamo che cerca la chiave :

OpenKey HKCU\AndreaGeddon\Sergej\Rachmaninov --------------> Result : NOT FOUND.

La creiamo (Speriamo siano finite).

ripigiamo il 4 tastino e ops... non e' ancora finita....

il reg ci segnala che serve una stringa chiamata QualBuonVento (Notare il QueryValueEx )

QueryValueEx HKCU\AndreaGeddon\Sergej\Rachmaninov\QualBuonVento--------------> Result : NOT FOUND

Ed andiamo a creare sto valore.

Ma quando riproviamo a registrarci ci dice che la Key e' Bad ........

Che si fa ?

Chiamiamo in aiuto il Buon Sice come al livello 3

BPX su RegQueryValueExa ,

F12 e ci troviamo in questo punto

(Nota tracciando con F8 si nota che l'unico Cmp che incontriamo e' quello in 00401902 e se invertiamo lo Zero Flag il Programmillo ci registra) :-p

Noi invece andiamo a mettere un valore a caso in QualBuonVento.

:0040189E test eax, eax Uscita Dalla Call

:004018A0 je 004018B3

:004018A2 push 00000010

:004018A4 push 00404608

:004018A9 push 004045D4

:004018AE jmp 00401966

:004018B3 mov edi, esi

:004018B5 or ecx, FFFFFFFF

:004018B8 xor eax, eax

:004018BA xor edx, edx

:004018BC repnz

:004018BD scasb

:004018BE not ecx

:004018C0 dec ecx

:004018C1 je 004018DC

:004018C3 mov al, byte ptr [edx+esi] Carica il primo carattere del valore della chiave

:004018C6 mov edi, esi

:004018C8 add al, dl

:004018CA or ecx, FFFFFFFF

:004018CD mov byte ptr [edx+esi], al

:004018D0 xor eax, eax

:004018D2 inc edx

:004018D3 repnz

:004018D4 scasb

:004018D5 not ecx

:004018D7 dec ecx

:004018D8 cmp edx, ecx vede se ci sono ancora caratteri nella nostro valore

:004018DA jb 004018C3 Altrimenti riesegue il ciclo

:004018DC mov edi, esi

:004018DE or ecx, FFFFFFFF

:004018E1 xor eax, eax

:004018E3 xor edx, edx

:004018E5 repnz

:004018E6 scasb

:004018E7 not ecx

:004018E9 dec ecx

:004018EA je 00401902

:004018EC mov al, byte ptr [edx+esi] Qui riprende i nostri 4 caratteri Modificati dal primo Ciclo

:004018EF mov edi, esi

:004018F1 add bl, al E qui li somma

:004018F3 or ecx, FFFFFFFF

:004018F6 xor eax, eax

:004018F8 inc edx

:004018F9 repnz

:004018FA scasb

:004018FB not ecx

:004018FD dec ecx

:004018FE cmp edx, ecx E qui si controlla se e' finito

:00401900 jb 004018EC Altrimenti salta

:00401902 cmp bl, D1 Controlla se siamo stati bravi (in EBX si vede il risultato da noi ottenuto fino a questo punto)

:00401905 jne 0040195A E ci registra

Si nota che nel secondo ciclo il 1 carattere del codice rimane invariato mentre gli altri 3 sono aumentati Siccome ho avuto una botta di culo (sotto consiglio di Raabbit ) e 1234 danno somma finale e' D0 aumentero' di uno il primo carattere che diventera' 2234.

schiaccimo il tastino ed eccoci nell'olimpo .

                                                                                                                Pispola & Raabbit

Note finali

Non e' stato difficile e sicuramente abbiamo imparato a creare le chiavi nel registro ;-))

<Raabbit> I primi 2 Livelli sono stati molto facili e gli alti un po' meno ma nel complesso Bello :-)

Eccoci ai saluti Tutto Crack-it e UIC ,Spin0ne Per la sua dritta (un giorno per capire che era WhatIs e non Whatls :-( ) , Andrea per il tempo che perde a farci i Corsi Quequero che non fa + nulla e lo FA fare a Andrea . e tutti quelli che non abbiamo menzionato...Ah, grazie per avermi dato del fannullone :) NdQue

Disclaimer

Vorrei ricordare che il software va comprato e  non rubato, dovete registrare il vostro prodotto dopo il periodo di valutazione. Non mi ritengo responsabile per eventuali danni causati al vostro computer determinati dall'uso improprio di questo tutorial. Questo documento è stato scritto per invogliare il consumatore a registrare legalmente i propri programmi, e non a fargli fare uso dei tantissimi file crack presenti in rete, infatti tale documento aiuta a comprendere lo sforzo immane che ogni singolo programmatore(Andreageddon ne stai facendo di soldi he :-) )ha dovuto portare avanti per fornire ai rispettivi consumatori i migliori prodotti possibili.
Noi reversiamo al solo scopo informativo e di miglioramento del linguaggio Assembly.