Crackiamo Winzip 7 SR-1 |
||
08/12/99 |
by "aLX" |
|
Published by Quequero |
||
Raga, i form riempiteli con un editor, col notepad ma non con il word |
||
UIC's form |
|
UIC's form |
Difficoltà |
(X)NewBies ( )Intermedio ( )Avanzato ()Master |
Ciao a tutti sono aLX, in questo mio primo tutorial crackeremo il famosissimo Winzip 7 in modo che accetti qualunque serial.
Winzip 7 SR-1
( Un codice fasullo x il nostro amico Winzip )
Written by aLX
Introduzione |
Questo tute è stato scritto per far conoscere ai meno esperti (come me) i vari
ed infiniti metodi per patchare un qualunque programmino bastardo.
.
Tools usati |
SoftICE 4.0, Win32dasm e un editor esadecimale.
URL o FTP del programma |
www.winzip.com (se non sapete
questo
lascio a voi i commenti J).
.
Notizie sul programma |
Il più famoso software di compressione , esso presenta un noiosissimo nag-screen iniziale che ci avverte di non essere registrato (ben presto lo sarà ) e ci comunica che la versione utilizzata è quella di valutazione. Che dire una grossissima rottura di palle.
Essay |
Pronti ? Si parte Bene, avviate Winzip, a questo punto se non è registrato apparirà il nag-screen , clicchiamo su Enter Registration Code ed ecco il mitico (per modo di dire) box di registrazione :
Name :
Registration #:
Ok, mettiamoci un nome ed un codice a caso e premiamo ^D per entrare in SoftICE, scriviamo bpx getdlgitemtexta e premiamo F5 per ritornare al Winzip.
A questo punto premiamo OK, ed ecco che SoftIce fa la sua magica comparsa, premiamo una volta F11 per uscire da getdlgitemtexta e scriviamo bd 00 per disabilitare il bpx, ecco che ci troveremo qui :
[ ]
:0040801A push ebx in ebx cè il nostro nome, in eax la lunghezza
:0040801B call 00429699 viene messo in ecx il nostro nome
:00408020 pop ecx
:00408021 push ebx
:00408022 call 004296C2 controlla che il nome non contenga spazi allinizio e se li contiene li elimina
:00408027 pop ecx
:00408028 mov esi, 0046D978
:0040802D push 0000000B
:0040802F push esi
:00408030 push 00000C81
:00408035 push edi
:00408036 call dword ptr [0046840C] in eax viene messa la lunghezza del seriale inserito
:0040803C push esi
:0040803D call 00429699 in ecx viene messo il seriale
:00408042 pop ecx
:00408043 push esi
:00408044 call 004296C2 fa la stessa cosa della call 004296C2, ma questa volta il controllo viene fatto sul seriale
:00408049 cmp byte ptr [0047D928], 00 | controlla se i box
:00408050 pop ecx | Name e Registration
:00408061 je 004080B2 | sono vuoti, se si salta
:00408053 cmp byte ptr [0047D958], 00 | alla beggar-off
:0040805A je 004080B2 |
:0040805C call 00407B4B call che genera il serial e ritorna in eax o 0 o 1
:00408061 test eax, eax testa eax
:00408063 je 004080B2 è 0, allora salta alla beggar-off
:00408065 push ebx
:00408066 mov ebx, 00470CB8
[ ]
La call allindirizzo 0040805C genera il serial corretto e lo confronta con quello immesso e ritorna eax = 0 se il serial è sbagliato, se è corretto invece eax = 1.
Ora posizioniamoci sulla call e premiamo una volta F8 per entrare, il nostro scopo è di cercare dove viene ritornato il valore 0 in eax, di come viene generato il seriale non ce ne frega niente.
:00407B4B push ebp
:00407B4C mov ebp, esp
:00407B4E sub esp, 00000208
:00407B54 push ebx
:00407B55 push esi
:00407B56 xor esi, esi
:00407B58 cmp byte ptr [0047D928], 00
:00407B5F push edi
:00407B60 je 00407C07
:00407B66 lea eax, dword ptr [ebp-14]
:00407B69 push eax
:00407B6A push 0046F460
:00407B6F call 004017C3
[ ]
Questo pezzo di codice non ci interessa per il nostro scopo , continuiamo a steppare con F10, fino ad arrivare qui :
[ ]
:00407CA6 push 0000012C
:00407CAB lea eax, dword ptr [ebp+FFFFFEC0]
:00407CB1 push 00000000
:00407CB3 push eax
:00407CB4 call 00456150
:00407CB9 mov eax, dword ptr [0047B07C] eccolo!
:00407CBE add esp, 0000000C
:00407CC1 pop edi
:00407CC2 pop esi
:00407CC3 pop ebx
:00407CC4 leave
:00407CC5 ret
Ci siamo, listruzione allindirizzo 00407CB9 pone come avevamo detto prima eax = 0 o eax = 1 a seconda che il nostro seriale immesso sia giusto o sbagliato, cosa dobbiamo fare? Semplice, suggerire al programma di mettere in eax sempre il valore 1 cosicché il je a 00408063 non salti mai e quindi ci spedisca dritti dritti alla registrazione.
Ora apriamo win32dasm, disassembliamo il file winzip32.exe e andiamo alla locazione 00407CB9 e segniamoci loffset che ci da il dasm a fondo finestra. Lanciamo il nostro hex-editor preferito ed andiamo a modificarci il codice da A17CB04700 a B801000000, in questo modo abbiamo patchato listruzione mov eax, dword ptr [0047B07C] in mov eax,01. A questo punto il nostro lavoro è finito, non ci resta che entrare in Winzip e vedere se funzia, entriamoci e premiamo Enter Registration code , mettiamo un nome ed un serial che più ci piace, clicchiamo su OK e proviamo a riavviare. Come per magia il nostro Winzip è rimasto registrato secondo quello che avevamo immesso, ciò vuol dire che il nostro lavoretto ha funzionato (bè mi sembra logico). Finalmente ci siamo levati la rottura di palle del nag-screen iniziale.
Un ultima osservazione : qualcuno penserà che sostituendo quel je con due bei nop si semplifichi tutto, invece il programma si registrerà, ma non appena lo chiudiamo e rientriamo ci accorgeremo che tutto è tornato come prima, il nag-screen apparirà di nuovo poiché ci sara di nuovo un ulteriore controllo. Eh si, sono proprio intelligenti i programmatori della Nico Mak Computing J.
Finalmente ho finito, non credevo ci volesse così tanto, comunque spero che il mio primo tutorial vi sia piaciuto, se non lo è fate pure i vostri commenti mandandomi una e-mail allindirizzo sopra.
Bye
aLX
Note finali |
Passiamo al gran finale; essendo da pochi mesi entrato nel mondo del cracking non tutti mi conoscono, saluto comunque tutti gli amici di #crack-it ed in particolare : cod, [aLT255], _Johnny, t4n0, P3-Wow che mi hanno sempre saputo dare degli ottimi consigli. Peccato però che nessuno mi ha saputo dire dove posso trovare IDA Pro 3.8 sul web J. Forse tu Quequero?
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