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 |