Total Recorder 2.2 |
|
|
26/12/99 |
by "AndreaGeddon" |
|
|
Published by Quequero |
|
Ma quanto ci è voluto a crackare so prog??? :) |
||
| UIC's form |
|
UIC's form |
Difficoltà |
(x)NewBies ( )Intermedio ( )Avanzato ( )Master |
Registriamoci con qualsiasi seriale.
Introduzione |
Di solito cerco il seriale giusto, ma qui la routine era molto pallosa, quindi ho optato per il cracking..
Tools usati |
- SoftIce
- WDasm
- un Hex Heditor qualunque
URL o FTP del programma |
Da qualche parte in questo sito sfigato: http://www.highcriteria.com
Notizie sul programma |
Nome + serial. Come al solito non so neanche a cosa serva questo prog, e francamente non mi interessa.
Essay |
Qual'è il problema? Non basta il solito jumpetto a far fuori questa protezione? Vediamo cosa fare. Avevo intenzione di cercare il serial giusto, ma poi non avevo proprio voglia di mettermi a sguazzare in tutte quelle call, quindi vediamo come crakkarlo. Si parte inserendo un nome a caso ed un serial a caso. Se ci fate caso, potete sia trovare corrispondenze nel codice che vi dicono che il serial deve essere di 27h = 39 char, sia se iniziate a battere lettere a caso: l'editbox si fermerà al 39° char. Quindi volendo sappiamo già di quanti char è formato il seriale. Se volete cercatevelo. Breakate con GetDlgItemTextA. Iniziate a steppare, fino ad arrivare alla linea:
0040C2BB CALL 0041B180 call sospetta
ADD ESP, 00000008
TEST EAX, EAX viene controllato eax
JNE 0040C332 se eax è un non-zero, salta alla chiamata di errore
Quindi, come si può facilmente immaginare, basta noppare quel jump, ed il programma si registrerà. Bene. Finito? Nooo! Riavviate il programma, e sarà di nuovo non registrato. Come facciamo? Beh, la cosa più semplice a cui pensare è che a 0041B180 ci sia la routine che controlla il seriale e decide se è giusto oppure no. Evidentemente per un seriale giusto deve essere restituito uno zero in eax. Comunque, il punto è che la routine a 0041B180 probabilmente viene chiamata anche all'inizio del programma, quando viene ricontrollato il serial. Allora settiamo un break sulla linea 0041B180, e riavviamo il programma. Bam. Il softice poppa di nuovo. Steppiamo fino al ret della linea 0041B1E4. Questo ci porterà alla parte di codice che ha chiamato questa routine. Infatti, arriviamo dritti dritti alla linea 0041944B. Sappiamo già che da questa routine deve uscire un valore zero in eax affinchè il prog creda che il serial sia giusto. Comunque, se guardate oltre la call, nonn ci sono jump. Però un test eax, eax c'è, alla linea 0041945D. La riga dopo è un SETE CL. Questo setta cl ad 1 se il flag Zero è attivo. nel nostro caso non è attivo, quindi cl rimane a zero. Se proviamo ad attivare a mano col softice il flag zero, dopo l'istruzione di test, cl verrà settato a 1 e proseguendo il programma stavolta crederà di essere registrato.
Se ho tempo farò l'update di questo tute su come trovare il serial.
|
Saluto tutti gli amici della mailing list.
Disclaimer |
| UIC's page of reverse engineering, scegli dove andare: |
| Home Anonimato Assembly CrackMe ContactMe Forum Iscrizione |
| Lezioni Links Linux NewBies News Playstation |
| Tools Tutorial Search UIC Faq |
| UIC |