Acoustica MP3 To Wave Converter PLUS
(Un semplice SerialFishing!!)

Data

by "LoStNaMe69"

 

04/nov/2003

UIC's Home Page

Published by Quequero

Questi sono i campi in cui non

 so mai che cosa scrivere!!!

Grazie mille Lost, buon anno!

Questi sono i campi in cui non

so mai che cosa scrivere!!!

....

Home page se presente: non presente(almeno per il momento : ) )

E-mail: [email protected]

LoStNaMe69 su irc.azzurranet.it canale:crack-it!!

....

Difficoltà

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

 

Un serialfishing facile  che può aiutare un NewBies a capire un meglio come funziona il pescaggio di un seraile anche se non sono tutti così semplici e immediati ma per partire va benissimo!!


Acoustica MP3 To Wave Converter PLUS
(Un semplice SerialFishing!!)

Written by LoStNaMe69


Introduzione

La cosa più odiosa del mondo è leggere un tutorial e dopo un po’ rendersi conto che non si sta capendo una minchia  di quello che si sta leggendo e saltano fuori un sacco di domande(cos’è questo, cos’è quell’altro, perché ha fatto così cosà etc etc..).

Questo accade non perché siete tardi, ma semplicemente perché nel tut che state leggendo vengono date per scontate delle cose che voi non sapete, risultato non si capisce un cazzo!

Per non perdervi in sege mentali nel leggere questo tutorial dovete almeno conoscere le basi di softice  tipo cos’è un brekpoint come si mette nel debugger e una conoscenza minima delle API di window tipo getwindowtexta etc etc.cmq metterò i comandi base tra parentesi così che non dobbiate leggervi tutto il manuale di softice per capirci qualcosa!!

Tools usati

Softice(e chi se no!! :)

URL o FTP del programma

Si trova tranquillamente con un motore di ricerca qualunque tipo google!! Ok? : )!!

Notizie sul programma

Questo programma, se non l’avevate capito è un convertitore di file da *.mp3 a *.wav e viceversa non scade mai ma in compenso dopo 7 conversioni ci dice che se vogliamo continuare ad usarlo ci dobbiamo registrare(come?) bhe con un bel serial!!

Essay

Ok cominciamo, installiamo il programmino……..fatto……. e vediamo come si comporta, cerchiamo sul nostro hard-disk un file mp3 e facciamo conversioni in *.wav….fatto….se ne avete fatte abbastanza acustica si dovrebbe incazzare e dirvi che l’avete provato abbastanza……fatto……abbiamo cosi ottenuto il nostro programma scaduto fatto in casa…: )!

Questa operazione non sarebbe servita ma è una mia abitudine far scadere tutto quello che può scadere in programma, così abbiamo una chiara situazione di cosa dobbiamo fare se fallissimo nel cercare il serial(non si sa mai!!!), ma andiamo avanti, adesso clikkiamo sul tasto enter code e inseriamo un fake-name(nel mio caso LoStNaMe69) e un fake number(sempre nel mio caso 1133557799) e apriamo soffice(ctrl+D per chi non lo sa)  mettiamo un breakpoint su GetWindowTextA(bpx GetWindowTextA sempre per chi non lo sa!!:)) chiudiamo il debugger clikkiamo su register………….niente da fare appare la finestra che ci informa che il codice è sbagliato(ma và….che volpe….direi quasi una firefox !!) quindi rientriamo in softice togliamo il breakpoint su GetWindowTextA(bc *) e lo mettiamo su GetDlgItemTextA(bpx GetDlgItemTexta) e diamo l’Ok il debugger poppa esattamente 2 volte una per il nome e una per il serial e ci troviamo esattamente qui:

:004115D2    call edi   <---------- Noi saltiamo fuori qui

:004115D4    cmp eax, 00000002< -------controllo sulla lunghezza del nome se è inferiore o uguale a due caratteri

:004115D7    jnb 00411613 < -----questo salto non salta(bel discorso complimenti!!)

:004115D9    push 00000000

:004115DB    lea edx, dword ptr [esp+00000484]

:004115E2    push 00000200

:004115E7    push edx

* Possible StringData Ref from Data Obj ->"RD_NeedName"

                                  |

:004115E8    push 0042825C

* Reference To: utilities.?MyLoadString@@YAHPAD0H0@Z, Ord:0122h < --e finiamo alla finestra che ci dice di inserire un nome più lungo!!

……………………………………………………………….

……………………………………………………………….                                 

Qui c’è una parte di codice che non ci interessa che per motivi di spazio non metto

………………………………………………………………

……………………………………………………………..

:00411610    ret 0010

* Referenced by a (U)nconditional or (C)onditional Jump at Address:< --se il nome è abbastanza lungo finiamo qui!!!

|:004115D7(C)

|

:00411613    test ebp, ebp <-----controllo sulla lunghezza del serial!!

:00411615    jbe 0041163B <------se è più lungo di zero caratteri non salta e andiamo avanti!!

:00411617    lea ecx, dword ptr [esp+00000080]

:0041161E    push ecx

:0041161F    call 00414D66

:00411624    add esp, 00000004

:00411627    lea edx, dword ptr [esp+00000680]

:0041162E    mov ecx, ebx

:00411630    push edx

:00411631    push eax

:00411632    call 00410C90<-----questa è la nostra call sospetta!!

:00411637    test eax, eax <---- controlla il valore di eax

:00411639    jne 00411675 <------se non è 0 salta altrimenti prosegue verso il messaggio di seriale sbagliato!!!

* Referenced by a (U)nconditional or (C)onditional Jump at Address:< -se ci siamo dimenticati di inserire il serial finiamo qui!!

|:00411615(C)

|

:0041163B    push 00000000

:0041163D    lea eax, dword ptr [esp+00000484]

:00411644    push 00000200

:00411649    push eax

·                                 Possible StringData Ref from Data Obj ->"RD_InvalidReg" 

Cominciamo spiegando il perché la call all’indirizzo 00411632 è sospetta, semplicemente perché se provate con softice  a steppare(si steppa con F10) fino al jne che viene dopo scoprirete con vostro grande stupore che se il jne non salta il programma ci da la finestra di errore mentre se salta……non fa niente….., esce dal programma con una api EndDialog, ma è facile intuire cosa succeda se inseriamo il codice giusto;quindi non ci resta che entrare nella suddetta call e vedere cosa c’è dentro:

:00410C90    push ebx < ----- voi siete qui!!: )

:00410C91    push ebp

:00410C92    mov ebp, dword ptr [esp+0C] <-----sposta in ebp il valore esadecimale del codice che abbiamo inserito

:00410C96    push esi

:00410C97    cmp ebp, 000F4240 <------------- compara il nostro codice(sempre in esadeciamle)con F4240(ovvero 1000000 in decimale )

:00410C9D    mov ebx, ecx

:00410C9F    mov esi, 00000001

:00410CA4    jbe 00410D17 <---------se il seriale che abbiamo inserito è più basso di 1000000 salta direttamente al messaggio di errore

:00410CA6    mov eax, ebp <------- sposta il nostro seriale in eax

:00410CA8    xor edx, edx <--------azzera edx

:00410CAA    mov ecx, 0000DF7F <--- sposta in ecx il valore DF7F(ovvero 57215 in decimale)

:00410CAF    div ecx < ----------- divide il nostro seriale per DF7F

:00410CB1    test edx, edx <------ controlla il resto della divisione

:00410CB3    jne 00410D17 < ------- se il resto non è 0 ci manda al messagio di errore senza passare dal via!!

…………………………………………………….

Sempre una parte di codice che non ci interessa

E che sempre per motivi di spazio non metto

……………………………………………………….

…………………………………………………..

* Possible StringData Ref from Data Obj ->"IDS_YOU_REGISTERED"< -----------se il resto è 0 VITTORIAAAA!! : ) !!

                                  |

:00410CFF    push 00428210

:00410D04    call 00412530

:00410D09    mov eax, dword ptr [esp+1C]

:00410D0D    add esp, 00000008

:00410D10    pop edi

:00410D11    pop esi

:00410D12    pop ebp

:00410D13    pop ebx

:00410D14    ret 0008

Non ci vuole la scala per capire che il jne all’indirizzo 00410CB3 non deve saltare quindi bisogna trovare un numero che diviso 57215 dia resto 0,

il primo numero che mi è venuto in mente è 5721500(cmq vanno bene tutti i suoi multipli) perché cosi superiamo il valore di 1000000(il controllo all’indirizzo 00410C97) che altrimenti ci farebbe saltare al messaggio di errore, diciamo che questo è un metodo diverso per assicurarsi che il codice sia più lungo di 7 cifre.

A questo punto scatta una domanda ma il nostro fake-name dove è finito? Risposta….Francamente me ne infischio!!!, nel controllo non c’è traccia del nome…deduzione seguente non è utile alla formazione del serial giusto, quindi inserendo un altro nome non cambierebbe minimante il controllo del serial che resta sempre uguale!

 

Note finali

Spero di non avervi lasciato con l’amaro in bocca se qualcosa non è chiaro o avete suggerimenti per i prossimi tut scrivetemi pure (l’indirizzo l’avete no?!! : )!! )

Ringrazio e saluto tutti quelli di crack-it nessuno escluso che hanno sempre pazienza e soprattutto la voglia di rispondere alle mie domande rompicazzo!!Ciaooooooooooooo!!

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.