Esame UIC n° 1
(cambiamento istruzione)


31/08/1999

by Ritz

 

 

UIC's Home Page

Published by Quequero

 

Il tutorial è buono solo che contiene un errore e poi non viene esaminato l'ultimo check, quest'ultima cosa è importante dal momento che era considerata **obbligatoria**, i passi facoltativi non ci sono ma non fa nulla....Erani facoltativi :)))

 
UIC's form
E-mail: Eclyps3@excite.com
Ritz, 41793377, #crack-it
UIC's form

Difficoltà

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

 

Dunque dunque, che dire, in questo tute cercherò semplicemente di spiegare come ho fatto a crackare il primo esame della UIC :)).


Esame UIC n°1

(cambiamento istruzione)

Written by Ritz

Introduzione

Ciao a tutti! Innanzi tutto non so come possa riuscire questo tute, in quanto l'ho scritto in una decina di minuti il giorno 31 agosto... quindi spero ci capiate qualcosa. Erm, poi che dire, esso è la soluzione del 1° esame UIC fatto dal nostro caro Quequero ;)). Volevo chiamarlo prof. ma so che si arrabbia... :)))). Che gentile :p

Tools usati

Uno soltanto: il caro SoftIce 3.24.

URL o FTP del programma

Ehehehehehe serve proprio? Dovrebbe essere una cosa del tipo quequero.cjb.net ma non ne sono sicuro. :))

Notizie sul programma 

Questo prog. costituisce il primo degli esami UIC: è da crackare e basta: serve solo per imparare a usare il Sice (almeno penso vero Que?). Bhè si + o -, è ovvio che gli altri loschi scopi non ve li posso raccontare :)

Essay

Dunque dunque... pronti? VIAAAA!!! Vediamo un po' cosa ha combinato Que... :)))
 
Avviate il programma, vi appariranno 2 campi: inseriteli tutti e due, poi premete OK: vi apparirà un messaggio d'errore: "Serial errato, ritenta!!!"
 
Cheddire, let's crack it!! Sennò Que perchè l'avrebbe fatto? :)
 
Allora, innanzi tutto aprite il SoftIce con CTRL+D e settate un bpx su getwindowtexta. Chiudete il Sice e ripremete OK. Ecco che ora popperete nel vosto debugger. Uscite con CTRL+D (in questo momento il prog. sta leggendo il nome, non il serial, cosa che a noi non interessa) e ripopperete nell'Ice. Premete F11 per entrare nel codice del prog., ed eccovi attraccati qui:
 
:0040121C CALL USER32!GetWindowTextA
:00401221 MOV EBX,00402169
:00401226 MOV EDX,EAX
:00401228 XOR ECX,ECX
:0040122A MOV AL,[ECX+00402165]
:00401230 ADD AL,12
:00401232 XOR AL,CL
:00401234 ADD AL,15
:00401236 ADD AL,02
:00401238 MOV EBX,00402169
:0040123D MOV AH,[ECX+EBX]
:00401240 CMP AL,AH
:00401242 JNZ 00401311
:00401248 INC ECX  
[Seguono varie righe di codice che si riveleranno inutili] 
:00401311 MOV EAX,00402165
:00401316 ADD EAX,2D
:00401319 XOR EAX,0F
:0040131C MOV EBX,EAX
:0040131E XOR EAX,EAX
:00401320 PUSH 10
:00401322 PUSH 0040208C
:00401327 PUSH 00402000
:0040132C PUSH 00
:0040132E CALL USER32! MessageBoxA
:00401333 JMP 0040115C
:00401338 PUSH 20
:0040133A PUSH 004020E1
:0040133F PUSH 00402066
:00401344 PUSH 00
:00401346 CALL USER32!MessageBoxA
:0040134B JMP 00402169
:00401350 RET
 
Analizziamo la situaizone: in :00401242 c'è un jnz che salta a :00401311: provate, da dove siete attraccati, a steppare con F10 e vedrete che proprio quel jump viene eseguito: continuando a fare ancora step, vi ritroverete davanti la schermata d'errore: infatti, il jnz situato in :00401242 porta proprio al codice della beggar off. Vabbè... ora uscite dal Sice con CTRL+D: sappiamo un po' più di cose. Senza eliminare il breakpoint, cliccate di nuovo su OK: entrerete nel debugger. Usciteci e ci ripopperete. E' arrivato il momento di agire: esaminiamo ancora la situazione. Steppate fino a trovarvi in :00401240. Lì c'è il cmp che poi genera il salto. Provate a visualizzare i registri ah ed al: fate prima "? ah" e poi "? al" (tutto senza virgolette). Si può notare che sono COMPLETAMENTE diversi, e che nessuno di essi è collegato il qualche modo al seriale (provate a cambiare il serial number e riosservateli: non cambia nulla); ma allora? Che significa? Semplice, che i valori di ah e al non potranno MAI essere uguali in quanto vengono generati con algoritmi che non prendono nemmeno in considerazione il numeretto da noi inserito, qualunque esso sia, e di conseguenza il salto avverrà sempre e cmq. Quindi che si fa?
 
Bhè questo non è esatto dal momento che se guardate bene vedrete che AL in realtà contiene la prima lettera del vostro nick opportunatamente modificata, cioè le viene addato 12h, viene poi xorata con CL che nel primo loop vale 0 nel secondo 1 e così via, le viene poi addato 15h poi 2h e poi viene confrontata con il primo carattere del seriale, se come primo numero inserivate il carattere ASCII che viene fuori da questa routine allora non sarebbe saltato, ma come alcuni di voi hanno scritto non è questo il problema NdQue
Osservate l'indirizzo :00401338. Esso porta diritto a una nuova MessageBox. Potrebbe mai essere quella del codice "esatto"? Mah, proviamo, perchè no? Bisogna quindi cambiare l'indirizzo a cui il jnz si riferisce. Scrivete "a 401242" per modificare l'istruzione, e poi jnz 401338: in questo modo salta alla routine della messagebox. Chiudete il Sice con CTRL+D e... sììììììììì... "Serial esatto... Bravo!!!". Perfetto, programmillo crackato. Facile no?
 
Riassumendo, Que si è divertito :) a farci uno scherzetto: il serial in questo prog non serve a nulla, e quindi non ha senso cambiare vari jne in je quando basta cambiare radicalmente una sola istruzione.
 
Mission passed (almeno spero :)).
 
Come Volevasi Dimostrare.
 
ZeE yOu ZoOn.
 
Ciauzzzzzzzzzzzzzzzzzzz,
 
Ritz                                                                                                              
Note finali

Dunque, chi posso ringraziare? Beh prima di tutto ci va sempre lui, il mitico QUEQUEROOOO, sempre moolto disponibile e pronto ad aiutarmi, anche perchè senza di lui noi cosa avremmo tentato di crackare? Que sei semplicemente un mitooooooo!!!! :)) Heheh grazie :)))NdQue

Un saluto naturalmente va a tutti i miei compagni di calsse (che non so precisamente chi siano :))), e specialmente BlackDruid, cod (il quale ha anche tentato di corrompermi, vero cod? :)) e BoBo, in quanto gli altri non li ho mai visti su IRC :((; saluto anche tutto il chan #crack-it ([aLT255], ^courier, sPEzio, ecc...), tutti i Ring0 e... basta, penso di aver finito. Ah, no!! manca la cosa più importante! Saluto l'iguana di Quequero. :) Che bello, è così felice che sta scodinzolando....Mmm se scodinzola un altro po' mi frantuma la spalla... ;))))NdQue

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.

 
UIC's page of reverse engineering, scegli dove andare:

Home   Anonimato   Assembly    ContactMe  CrackMe   Links   
NewBies   News   Forum   Lezioni  
Tools   Tutorial 

UIC