Crackiamo Winzip 7 SR-1
( Un codice fasullo x il nostro amico Winzip  )

 

08/12/99

by "aLX"

 
 

UIC's Home Page

Published by Quequero

 

  Raga, i form riempiteli con un editor, col notepad ma non con il word

 

UIC's form

E-mail: [email protected]
aLX , ]aLX[
IRC : #crack-it

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 all’inizio 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 all’indirizzo 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, l’istruzione all’indirizzo 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 l’offset 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 l’istruzione 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 all’indirizzo 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 

UIC