Corso 5 Newbies


9/7/2000

by Pispola

 

 

UIC's Home Page

Published by Quequero

 

E bravo Pispola, sono molto felice di aver visto (finalmente) questo tute, mi raccomando continua così :)....Ed un salutone alla famiglia visto che non ci vediamo e sentiamo dall'HackMeeting visto che tu sei sparito inspiegabilmente :))

 
UIC's form
E-mail:pispola_@tin.it
On IRC:Pispola, Channel: #Crack-it
UIC's form

Difficoltà

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

 

Proviamo a trovare il codice del Crackme di Andrea speriamo non sia troppo difficile.................:-)


Corso 5 NewBies
Written by Pispola

Introduzione

Bisogna Trovare il giusto Serial in base al Nome

Tools usati

SoftIce

URL o FTP del programma

http://www.uic-spippolatori.com/

Notizie sul programma 

CrackMe

Essay

Allora partiamo altrimenti non si finisce...:-)
Facciamo partire il Crackme del corso 5 , Per averne un idea di cosa ci aspetta ,e pigiamo su Check...
Puntualmente il programma ci insulta giustamente perche' manca il nome ed il serial ma Scopriamo che vuole
almeno 6 caratteri per il nome.(non avevo visto che era pure scritto!!!!! ) :-(((
Ok inseriamo il nome Pispola (meno male che sono 7)ed un serial a caso 123456
meno male che si e' addolcito (ci insulta un po meno) :-)
Ora ci resta da settare il famigerato bpx ma dove?
su GetWindowwTextA, su GetDlgItemTextA o HMEMCPY ?
si prova e si vedra'!!!!
il primo non poppa proviamo con il secondo e Tadaaaaa ecco Sice in nostro aiuto
steppiamo con due F12 per uscire dalla User32 e Mfc42d ed eccoci nel codice di 5newbies.
Ancora qualche F8 e vediamo che in questo punto viene caricato il primo carattere del nostro Nome
(50 nel mio caso) in al.
 
:004026D6 8A8435D4FFFFFF mov al, byte ptr [ebp+esi-0000002C] Carica il 1 carattere
:004026DD 3C00 cmp al, 00 Controlla che non sia 00 (nome finito)
:004026DF 7466 je 00402747 Altrimenti salta
Il nostro carattere in esadecimale si trova in eax e continuando a steppare si vede eax modificata da tre Xor con dei valori
 
:004026E1 8A8C356CFFFFFF mov cl, byte ptr [ebp+esi-00000094]
:004026E8 32C1 xor al, cl 1° operazione
:004026EA 8A8C354CFFFFFF mov cl, byte ptr [ebp+esi-000000B4]
:004026F1 32C1 xor al, cl 2° operazione
:004026F3 8A8C352CFFFFFF mov cl, byte ptr [ebp+esi-000000D4]
:004026FA 32C1 xor al, cl 3° operazione
A questo punto trovo in EAX il valore della mio 1 carattere xorato AE (dovrebbe essere il valore da comparare)
 
:004026FC 8A9C3D8CFFFFFF mov bl, byte ptr [ebp+edi-00000074] Carica il 1° carattere del seriale
nel nostro caso carattere 1 = 31

 

Questo pezzo di codice non mi e' ben chiaro fa delle elaborazioni al nostro seriale
:00402703 80EB30 sub bl, 30
:00402706 80FB09 cmp bl, 09
:00402709 7E03 jle 0040270E
:0040270B 80EB07 sub bl, 07
:0040270E 8A943D8DFFFFFF mov dl, byte ptr [ebp+edi-00000073]
:00402715 80EA30 sub dl, 30
:00402718 80FA09 cmp dl, 09
:0040271B 7E03 jle 00402720
:0040271D 80EA07 sub dl, 07
:00402720 C0E304 shl bl, 04
:00402723 02D3 add dl, bl
:00402725 46 inc esi <---------------------incrementa esi usato per lo xor
:00402726 47 inc edi <---------------------incrementa edi usato per lo xor
:00402727 47 inc edi <---------------------incrementa edi usato per lo xor
:00402728 3AC2 cmp al, dl <--------------e qui determina se il primo carattere con il primo seriale e' giusto
:0040272A 74AA je 004026D6 <----------se e' uguale salta al prossimo carattere
 
A questo punto abbiamo la soluzione in mano:
 
O modifichiamo il je alla locazione 0040272A in jne (da 74AA a 75AA) ed il programma registrera' qualsiasi seriale tranne quello giusto

O modifichiamo il je alla locazione 0040272A in jmp (da 74AA a EBAA) ed il programma registrera' qualsiasi seriale

oppure si controlla (con un bpx alla locazione 004026FC) il valore di EAX che passo dopo passo ci mostrera' tutto il nostro seriale caratttere per carattere, facendo attenzione ad invertire lo zero flag tutte le volte che incorriamo nell'istruzione

:0040272A 74AA je 004026D6

Siccome nel rileggere le ultime 3 righe ho capito anch'io di non essere stato Molto chiaro spendo 2 parole in piu'(visto che nell'ultimo meeting della UIC si e' parlato di + chiarezza anche sulle cose semplici) al limite il buon Que tagliera' questultima parte.

settiamo un bpx su :004026D6 8A8435D4FFFFFF mov al, byte ptr [ebp+esi-0000002C]
e tutte le volte che Sice poppa si vedra ' caricato un caratere del Nostro seriale in EAX
settiamo un bpx su :004026FC 8A9C3D8CFFFFFF mov bl, byte ptr [ebp+edi-00000074]
e quando Sice poppa in questo punto in in EAX c'e' il primo pezzo del Nostro seriale giusto
ed l'ultimo bpx su :0040272A 74AA je 004026D6

dove ci sara' da modificare lo z flag affinche' il programma continui l'esecuzione fornendoci tutti i pezzi di seriale anche se il seriale inserito e' sbagliato. Tutte le volte che Sice poppera' su qesta linea si dovra' cliccare in sice col mouse sulla z in alto a destra e con il tasto "ins" far diventare la z maiuscola e di diverso colore in questo modo il jmp rispondera' ad un salto invece che ad un (no jump). Eseguire questa operazione finche' il prog. avra' eseguito tutte le operazioni su tutte le lettere del Nome inserito.

esempio : Nome = Pispola

al primo brek EAX conterra' il codice hexe 50=P al secondo brek EAX conterra' il codice AE (primo pezzo di seriale) al terzo brek invertire lo z flag per continuare l'esecuzione questa operazione va eseguita per il numero di caratteri del Nome inserito.

P..... i... s... p ..o.. l... a

AE 96 8F 8D 95 97 8F

                                                                                                                 Pispola
Note finali

Ed eccoci arrivati alla fine spero di essere stato chiaro (esendo il primo Tute che scrivo) :-)

Un saluto a tutti gli amici di Crack-it , KRIOSMAN, SPIN0NE, DED, BARON-SAM, SILENT, MALATTIA, LITTLEJO, CEK, BIECO ,INT19, BLAKDRUID, YADO , QUEQUERO (che non si fa mai sentire), PARADOX, TIN-MAN (e tutti quelli che mi son dimenticato).

UN RINGRAZIAMENTO SPECIALE ALLA MIA TASTIERA CHE HA SOPPORTATO PAZIENTEMENTE ALLA STESURA DI CODESTO TUTES.

CiAoZ @ ToDos StaKko

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 AndreaGeddon ha dovuto portare avanti per fornire a noi LEIM questo Splendido prodotto. :-)))
 
Noi reversiamo al solo scopo informativo e di miglioramento del linguaggio Assembly.  

UIC's page of reverse engineering, scegli dove andare:
Home   Anonimato   Assembly    ContactMe   CrackMe   Forum   Iscrizione
Lezioni    Links   Linux   NewBies   News   Playstation
Search   Tools   Tutorial   UIC Faq   XXX Page
UIC