Acoustica MP3 To Wave Converter PLUS |
||
Data |
by "LoStNaMe69" |
|
04/nov/2003 |
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.