|
CRACKING
WINBODE | ||
|
Data |
by
"CaptZero" |
|
|
24/04/2001 |
Published
by Quequero | |
|
|
|
nè hai almeno un dozzina!!! |
|
.... |
Home page se presente: http://xxxxxxx.xxx.xxx/ E-mail: mailto:xxxxxx@xxxxxxx.xxx CaptZero, canale #Crack-it su irc.azzurra.it |
.... |
|
Difficoltà |
(X)NewBies ( )Intermedio ( )Avanzato ( )Master |
|
Questo tutorial è nato per dimostrare come un programma all’ apparenza piccolo (97k) dal costo irrisorio , lire 5000 nasconda al suo interno alcune insidie, che avvolte in programmi da centinaia di milalire basta una solo salto condizionato per mandare a ramengo tutta la prot. Ai NewBies è dedicato questo tutorial.
Cracking
WINBODE
Written
by CaptZero Alias Badchip
|
Introduzione |
In Questo tutorial ci occuperemo di eliminare i nags di eliminare il controllo sul 'CrC' e di registrare il programma
|
Tools
usati |
|
URL o FTP del programma |
Il
programma può essere scaricato da :
http://web.tiscalinet.it/hiforce/winbode/index.htm
|
Notizie sul programma |
Win
Bode è un'applicazione Windows che permette di tracciare e stampare i diagrammi
di Bode, sia asintotici che reali, e di effettuarne lo studio. Il programma è
registrabile tramite 2 seriali , Nag iniziale di 20 secondi a rammentarvi che
siete non registrati, e un seconda Nag di 10 secondi che ci punisce quando
proviamo a mettere una seriale sbagliata, più un controllo se modificate il
programma in qualche sua parte.
|
Essay |
Lanciamo
il programma andiamo in About e vediamo il Registrami , proviamo a mettere un
nome e 2 seriali inventate e clikkiamo OK , la risposta a meno di essere
il mago Silvan è : Numeri di serie errati , è vietato inserire ecc.ecc. Bene
disassembliamolo con Windasm, andiamo alla ricerca della stringa : è
vietato. Ci
troveremo qua:
:0001.CF20
call USER.SETTIMER----------------> Settato
il Timer di punzione
:0001.CF25
or ax, ax
:0001.CF27
jne CF35-------------------------- > Se
hai messo seriali errate vai CF35
:0001.CF29
les di, [bp+06]
:0001.CF2C
push word ptr es:[di+04]
:0001.CF30
call USER.DESTROYWINDOW
:0001.CF35
cmp word ptr [23EA], 0064
:0001.CF3A
jge CF55 -----------------------> Se
è passato il tempo previsto salta a killare il timer!
:0001.CF3C
les di, [bp+06]
:0001.CF3F
push word ptr es:[di+04]
Bene
patchamo il JNE CF35 in JE35 e patchamo JGE CF55 in JMP CF35 cosi eliminiamo la
noisosa nag.Rilanciamo il programma per vedere se l' effetto desiderato è
riuscito, ma scopriamo che il programma non parte più, al posto ci appare una
messagebox che ci avverete che il programma è stato 'Manipolato da un probabile
virus'. eheh! mah!Rilanciamo il windasm andiamo alla ricerca della stringa '
Virus ' e approdiamo qua:
:0001.8B2C
lea di, [bp+F6B2]
:0001.8B30
push ss
:0001.8B31
push di
:0001.8B32
call 0004.08F0h
:0001.8B37
cmp word ptr [bp+F6A4], 0002 ------------------------>Controlla
se è stato modificato il file
:0001.8B3C
jne 8B64---------------------------
-------------------------->Salta se non è Zero (ovviamente se è modificato
non lo sarà)
:0001.8B3E
cmp word ptr [bp+F6A2], CE00------------------->Ulteriori
controlli di modifica del file
:0001.8B44
jne 8B64--------------------------------------->Sempre
come prima salta e di che è modificato
:0001.8B46
cmp word ptr [bp+F6AC], 0042------------------->sempre
la stessa solfa
:0001.8B4B
jne 8B64--------------------------------------->Come
potete notare la prot è stupida in quanto ripetitiva
:0001.8B4D
cmp word ptr [bp+F6AA], F6DE
:0001.8B53
jne 8B64
:0001.8B55
cmp word ptr [bp+F6A8], 0048
:0001.8B5A
jne 8B64
:0001.8B5C
cmp word ptr [bp+F6A6], C5C4
:0001.8B62 je
8B87----------------------------------------->Se
tutto è andato bene saltiamo e il programma parte
Come
possiamo vedere sopra, esegue una serie di comparazioni , di seguito c'è una JNE
all' indirizzo 8B64 sempre uguale per tutti quanti i controlli , se uno solo va
male ci porterà dritti dritti verso la NAG, e ci segnalerà che il programma è
modificato (genticamente ? eheh).Sarebbe stato oppurtuno per il programmatore di
Winbode utilizzare il metodo della JUNGLE CALL (letteralmente giungla di call) e
rendere più difficile il compito del cracker.Cmq modifichiamo tutti i JMP 8B64
con dei NOP 'no operation' , mentre il JE 8B87 che controlla il tutto lo
facciamo saltare senza condizioni ossia JMP 8B87. A questo punto il programma
parte nonostante le modifiche effettuate come se nulla fosse :). Ora passiamo
per curiosità a vedere dove sta il Timer che ci fà perdere i 20 secondi iniziali
prima di abilitarci l' Ok per entrare nel programma. Cerchiamo con il windasm
KILLTIMER,
dopo una rapida ricerca adocchiamo questa parte di codice molto
interessante:
0001.D650
inc word ptr [23EA]
:0001.D654
cmp word ptr [23EA], 00C8
:0001.D65A jge
D65E------------------------------------------>Se
facciamo saltare con JMP i 20 sec vanno a farsi un giro :)
:0001.D65C
jmp D67A
:0001.D65E les di,
[bp+06]
:0001.D661
push word ptr es:[di+04]
:0001.D665
push 0001
:0001.D667
call USER.KILLTIMER
Bene
a questo punto abbiamo fatto fuori le Nag che non ci faranno più perdere tempo,
il controllo sulle modifche del file si fà i fatti suoi, non ci rimane che
registrare il programma vediamo come. Diamo uno sguardo nell string reference
del windasm e vediamo due cose interessanti: la prima è registrazione
la seconda Numeri
accettati!
. Ci guardiamo e finiamo qua :
:0001.CEE mov di,
0F1F
:0001.CEF1
push ds
:0001.CEF2
push di
:0001.CEF3
call KERNEL.WRITEPRIVATEPROFILESTRING
:0001.CEF8
mov ax, [bp+FEF6]
:0001.CEFC cmp ax,
[bp+FEF2]----------------------------------->Qui
è comparata la prima seriale inserita
:0001.CF00
jne CF0C------------------------------------------->
Se
è errata salta
:0001.CF02
mov ax, [bp+FEF4]
:0001.CF06
cmp ax, [bp+FEF0]---------------------------------->compara
la seconda seriale inserita
:0001.CF0A je CF65-------------------------------------------->Salta a NUMERI ACCETTATI :)
Percui
patchamo JNE CF0C in JE CF0C e il JE CF65 in JNE CF65 ( si poteva anche
saltare il tutto lò sò ma vorrei far capire al novellino cosa sta succedendo).
Cosi facendo mettendo qualsiasi seriali a caso il programma verrà registrato.
Infatti immettendo nei relativi campi due seriali , il programma ci risponde :
NUMERI ACCETTATI... però prosegue dicendoci che all riavvio del programma saremo
registrati. Ciò vuol dire che 99 su 100 il programma controllerà la correttezza
delle seriali inserite.A questo punto non ho più voglia di guardare il
disassemblato con il windasm perchè ho voglia di concludere subito ehehe.Poppo
il Softice e setto un breakpoint spulciando tra quelli disponibili guardando
nelle import del windasm, mi balza all' attenzione il GETPRIVATEPROFILEINT
bene il mio istinto mi dice che sono sulla strada giusta, percui per chi non lo
sà digito bpx getprivateprofileint , seguito da invio e control D per uscire ,
lancio il programma winbode e....... POPPP!!... scatta puntuale il softice,
vediamo dove :
:0001.8DD1
call KERNEL.GETPRIVATEPROFILEINT------------------>Qua
mi poppa il sice
:0001.8DD6
mov [bp+F69A], ax
:0001.8DDA
mov ax, [bp+F69C]
:0001.8DDE
cmp ax, [bp+F6A0]--------------------------------->Compara
la seriale 1
:0001.8DE2
jne 8DF1------------------------------------------>Se
è errata parti demo
:0001.8DE4
mov ax, [bp+F69A]
:0001.8DE8
cmp ax, [bp+F69E]--------------------------------->Compara
la seriale 2
:0001.8DEC
jne 8DF1------------------------------------------>Se
è errata parti demo
:0001.8DEE
jmp 8EA4------------------------------------------>Salta
e parti Full Fine del CRACK!
Percui
per fargli credere che siamo registrati basterà semplicemente mettere tutti e
due i JNE 8DF1 come JE. Le modifiche si posso effettuare con un
qualsiasi HEX editor , consiglio l' ultraedit32 a mio avviso il migliore ,
rammento per i NewBies che il JE è uguale a hex 74 e JNE a 75 percui con l'
editor basterà trovare gli opcode con un semplice find e modificare i 74 in 75 e
viceversa dove necessario, mentre il JGE da 7D a salta e basta percui EB,
mentre i NOP sono 90
|
Note finali |
Spero che questo primo
tutorial per UIC sia di aiuto per gli aspiranti cracker, il prossimo sarà di
livello avanzato/master. Un Saluto a tutti gli abitanti di #Crack-it su
irc.libero.it in special modo a Quequero e ph0bos,
AnderaGeddon, ^Case^ , CHR , mrcode e Lord_J , Pincopall che rompe sempre le
PALL :-)
|
Disclaimer |
Se il programma vi interessa compratelo in fondo 5000 lire è un prezzo ragionevole :)
Noi reversiamo al solo scopo informativo e di miglioramento del linguaggio Assembly e perchè mi piace crakkare!
Capitoooooooo????? Bhè credo di si ;))))