UIC Lezione 1 |
|
|
01-09-1999 |
by "Unlock" |
|
|
Published by Quequero |
|
Buono anche il lavoro di Unlock, il tutorial non presenta errori, è quindi esatto solo che è un po' vago, complimenti anche ad Unlock |
||
| UIC's form |
|
UIC's form |
Difficoltà |
(X)NewBies ( )Intermedio ( )Avanzato ( )Master |
Soluzione del 1° corso crecando d'imbrogliare il programma facendogli credere che i
dati inseriti siano corretti :))))
Written by Unlock
Introduzione |
Partiamo con questa prima lezione di UIC sperando che chi è alle
prime armi non si scoraggi :))))))
Tools usati |
URL o FTP del programma |
Notizie sul programma |
È la prima lezione della UIC
Essay |
1) Avviamo il programma uno.exe, ci chiederà due info per poterlo registrare
2) Inseriamo quello che vogliamo nelle due caselle
3) Clicchiamo il tasto "REGISTER", il programma da un messaggio di errata
registrazione
Sappiamo che Windows legge le informazioni da noi inserite nelle caselle con la
funzione GETWINDOWTEXTA. Premiamo Ctrl+D e saremo in SoftICE, inseriamo un
breakpoint proprio alla chiamata della funzione GETWINDOWTEXTA scrivendo
bpx GETWINDOWTEXTA e premendo enter, ora ripremiamo Ctrl+D per ritornare
a windows.
Ripetiamo i punti da 1 a 3. Al momento dell'esecuzione del punto 3 il breakpoint viene
eseguito, premiamo il tasto F12 (che serve a ritornare all' istruzione successiva alla
chiamata della funzione GETWINDOWTEXTA) e ci troveremo il seguente codice
016F : 00401205 CALL USER32!GETWINDOWTEXTA
: 0040120A MOV
EAX,00402165
: 0040120F PUSH 08
: 00401211 PUSH
00402169
: 00401216 PUSH DWORD
PTR [00402088]
: 0040121C CALL
USER32!GETWINDOWTEXTA
: 00401221 MOV EBX,
00402169
: 00401226 MOV EDX, EAX
: 00401228 XOR ECX, ECX
In questo punto il programma legge le informazioni e le memorizza in aree di memoria.
Proseguiamo nel DEBUG del programma con il tasto F 10 e troveremo il seguente codice:
016F : 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
: 00401249 INC
EAX
: 0040124A CMP
ECX, 03
: 0040124D JNZ
0040122A
In questo codice vengono prelevati i caratteri da noi inseriti, e memorizzati dal
programma nell'area di memoria 00402165 (corrispondente alla prima casella bianca) e
confrontati con quelli memorizzati nell'area di memoria 00402169 (corrispondente alla
seconda casella bianca). Teoricamente da questo confronto si potrebbe trovare la
chiave esatta e quindi inserirla senza modificare il codice del programma; in
realtà il calcolo della chiave genera dei simboli strani quindi è più
semplice modificare il codice del programma.
Il salto condizionato da modificare è quello nella locazione di memoria 00401242 JNZ 00401311, per fare
questo in SoftICE scrivere: A [spazio] 016F: 00401242 e premere enter.
In questo modo SoftICE ci permette di cambiare il codice e quindi possiamo
trasformare JNZ in JZ, si fa questo perchè l' istruzione CMP AL,AH setta un flag a 1 se il confronto non è corretto, che è
il nostro caso poichè abbiamo inserito una "fesseria"! Questa piccola
routine viene eseguita per tre volte dopo di che si ha un altro controllo, questo
lo possiamo notare premendo sempre il tasto F 10 (dopo avere modificato il
salto).
016F : 004012A9 MOV AL, [ECX+00402165]
: 004012AF
XOR AL, 16
: 004012B1 ADD
AL, 45
: 004012B3 ADD
AL, CL
: 004012B5 XOR
AL, CL
: 004012B7 MOV
BL, [ECX+00402169]
: 004012BD CMP AL,BL]
: 004012BF JNZ
00401311 *************
: 004012C1 INC
ECX
: 004012C2 CMP
ECX, 08
: 004012C5 JNZ
004012A9
Questo codice ripete il controllo di un altro pezzo di chiave di registrazione per 5 volte quindi c'è il solito confronto e il solito salto JNZ che andrà modificato come il precedente.
############ pensate d'avere finito ?????? Non è così !!!!!!!!!!#############
Dopo avere modificato anche questo salto proseguite di nuovo con il tasto F10 e
apparirà il seguente codice:
016F : 00401308 CALL 00401351
: 0040130D CMP AL, 01
: 0040130F JZ
00401338............... ecc. ecc.
Se, quando arrivate sull' istruzione CALL, premete il tasto F 10 NON FATELO!!!, il programma vi dirà che la chiave da voi inserita è errata; quindi qui c'è un ulteriore controllo della chiave di reg. bisogna entrare nella routine e vedere cosa controlla; per fare ciò si preme il tasto F8. A questo punto si visualizzerà il seguente codice:
016F : 00401351 MOV EBX,00402169
: 00401356 MOV EDX, EAX
: 00401358 XOR ECX, ECX
: 0040135A MOV AL,
[ECX+00402165]
: 00401360 ADD AL, 12
: 00401362 XOR AL, CL
: 00401364 ADD AL, 15
: 00401366 ADD AL, 02
: 00401368 MOV AH,
[ECX+00402169]
: 0040136E CMP AL, AH
: 00401370 JNZ 00401311
*************
: 00401372 INC ECX
: 00401373 INC EAX
: 00401374 CMP ECX, 03
: 00401377 JNZ 0040135A
: 00401379 MOV AL,
[ECX+00402165
: 0040137F XOR AL, 16
: 00401381 ADD AL, 44
: 00401383 ADD AL, CL
: 00401385 XOR AL, CL
: 00401387 MOV AH,
[ECX+ 00402169]
: 0040138D CMP AL, AH
: 0040138F JNZ 0040139B
*************
: 00401391 INC ECX
: 00401392 CMP ECX, 8
: 00401395 JNZ 00401379
: 00401397 MOV AL, 01
: 00401399 JMP 0040139F
: 0040139B MOV AL, 00
: 0040139D
JMP 0040139F
Questo codice ricontrolla quello che noi abbiamo inserito nelle caselle di registrazione e, se il controllo è corretto, inserisce in AL il numero 01 se no mette 00. Anche qui noi dobbiamo fare credere al programma che i dati inseriti siano corretti, quindi dovremo modificare i salti contrassegnati dagli asterischi da JNZ a JZ con lo stesso metodo usato in precedenza. Scrivere in SoftICE A [SPAZIO] 016F : 00401370 e premere enter e 016F : 0040138F e premere enter.
Premere F5 in SoftICE per fare ripartire il programma et voilà!
Spero di essere stato abbastanza chiaro :)))) Unlock
|
Un rigraziamento a tutti gli amici di crack-it
Disclaimer |
Home
Anonimato Assembly
ContactMe CrackMe Links
NewBies News Forum Lezioni
Tools Tutorial