Lezione 9 
WinRar 2.50 beta3

 

 

by "Caronte"

 

 

UIC's Home Page

Published by Quequero



Ciao Caronte sei nuovo? Ad ogni modo grazie per la tua soluzione, è importante che tutti si applichino un pochetto :)

 

UIC's form

E-mail: alliga54@hotmail.it
Caronte, IRCNet: #crack-it e varie

UIC's form

Difficoltà

 (x)NewBies ( )Intermedio ( )Avanzato ( )Master

 

Ok ora vi illustrerò come sono riuscito a crackare sto programma, purtroppo le mie ancora esigue conoscenze non mi hanno permesso di riuscire a svelare il mistero di come Winrar calcoli il serial ma poco importa, l'importante è provarci.


Cracking di WinRar
Written by Caronte

Introduzione

Il corso offre due possibili vie di soluzione: trovare il seriale e quindi decifrare il modo con con WinRar calcola il seriale o (quello più semplice) patchare il prog in modo che accetti qualsiasi seriale, fregandocene del calcolo del seriale. Io per motivi "tecnici" mi sono dovuto fermare allo stadio più semplice.:)

Tools usati

W32Dasm
Hex WorkShop 3.0, ma va bene qualsiasi hex editor.

URL o FTP del programma

Questo sito cioè www.uic-spippolatori.com

Notizie sul programma 

Viene usato per comprimere e decomprimere file e utilizza estensione .rar. Molto  simile a WinZip, abbastanza utile anche perchè su intenet si trova spesso materiale compresso con sto prog. Controlla all' avvio il file rar.ini e vede se il prog è stato registrato oppure no, controllando i due campi della sezione registration: RegName e RegCode.

Essay

Ok si inzia.Come prima cosa ho disassemblato il suddetto programma con il caro vecchio W32Dasm......mentre il tipo mi disassemblava il tutto io cominciavo a esaminaredal vivo il programma. Una volta avviato il programma in alto ci mostra la scritta "Evaluation Copy" che ciricorda appunto che il programma deve essere ancora craxxato.....ops volevo dire registrato. Andiamo nel menù Options-Registration e vediamo cosa ci si presenta: ci sono due caselle dove vobbiamo nella prima inserire nella prima una parola o magari il nostro nome,mentre nella seconda dobbiamo inserire il codice che quasi certamente il farabutto si calcola dal testo che abbimo inserito nella prima casella. Provo a schiacciare il tasto ok senza inserire niente e non succede niente, mentre inserendo qualche cosa nelle due caselle ci appare un tanto carino messagio che ci informa che abbiamo inserito qualche cazzata o nella prima o nella seconda casella di testo. Ok fin qui tutto a posto, intanto il nostro Dasm ha terminato di disassemblare il nostro protagonista e andando a cercare fra le sue string in cerca di qualche indizio. Il caro programmuzzo ci offre parecchi spunti......una delle prime stringhe che colpisce maggiormente la mia attenzione è "Thank you for support" e "Correct registration" che si trovano l'una di seguito all'altra:

             Jump at address:
|:00409DB3(C)
|
:00409DE1                    PUSH 00000040

String: "Correct registration"

:00409DE3                  PUSH 00000368
:00409DE8                  CALL 00406EC8
:00409DED                 POP ECX
:00409DEE                  PUSH EAX

String: "Thank you for support"

:00409DEF                 PUSH 00000367
:00409DF4                 CALL 00406EC8
:00409DF9                 POP ECX
:00409DFA                 PUSH EAX
:00409DFB                 MOV EDX, DWORD PTR [EBP+08]
:00409DFE                 PUSH EDX

Allora andando un pò più su si può notare l'indirizzo del jump che chiama tutto ciò.....ANDIAMOCI!!! Premiammo shift+f12 e inseriamo l'indirizzo del salto......come possiamo osservare se questo salto a luogo WinRar crede che i dati inseriti siano giusti e ci appare il msg di registrazione avvenuta, ma in realtà non è così, infatti una volta inseriti i dati WinRar li la  a scrivere nel suo caro file Rar.ini riportando pari pari il nostro nome e il cadice associato anche se sbagliato e siccome il prog controlla a ogni avvio questo file al successivo avvio del programma capirà tutto e saremo di nuovo al punto di partenza.Comunque c'è un'altra stringa interessante e cioè "Evaluation copy", portandoci su di essa e guardando un pò più si possono notare alcune cose particolarmente interessanti:

:00414C59 CMP DWORD PTR [0045157C], 00000000
:00414C60 JNE 00414C91

String: "evaluation copy"

:00414C62 PUSH 00000369
:00414C67 CALL 00406EC8
:00414C6C POP ECX
:00414C6D PUSH EAX

Quello che ci interessa a noi è quel compare a 00414C59 e il successivo JNE (jump if not equal = salta se non è uguale), infatti da questo salto dipende il caricamento della modalità evaluation o registrata....... noi non dobbiamo far altro che invertire questo JNE in JE o meglio ancora in un jump incondizionato e il gioco e fatto, il prog si caricherà sempre come registrato. Finalmente abbiamo finito, cmq per completezza tutto ciò erapossibile farlo anche con il SoftIce piazzando qualche bel bpx su chiamate di lettura a file .ini....... probabilmente sarebbe stato anche più divertente e magari avremo potuto anche scoprire come WinRar controllava la validità del codice, cmq sarà per la prossima volta(se ci sarà)!!

                                                                              Ciao a tutti
                                                                                     by

                                                                              CARONTE

Note finali

Ok siamo arrivati alla fine, cosa dire? Ringrazio principalmente Quequero e tutti quelli che hanno contribuito allo sviluppo di questo splendido sito. Voi mi avete fatto conoscere l' affascinante arte del cracking e tutto ciò che vi è connesso, ve ne sarò per sempre grato!!:)

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 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.
Capitoooooooo????? Bhè credo di si ;)))) 

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