Image Wolf 1.04
a caccia del seriale

Data

by Kurdt Kobain # ex-Gbyte

 

15/07/2001

UIC's Home Page

Published by Quequero

It's better to burn out than to fade away

Ideale per i NewBies, grazie Kurdt :P

Gabba Gabba Hey !

....

RIP_Kurdt su IRC/#crack.it

....

Difficoltà

(x)NewBies ( )Intermedio ( )Avanzato ( )Master

 

 


 
Image Wolf 1.04
a caccia del seriale

Written by Kurdt Kobain

Introduzione

A dire la verità davanti a sto programma all'inizio mi ci ero davvero rincoglionito, davanti a tutte quelle chiamate e salti ... che casino! L'unica cosa che avevo individuato era il salto centrale della protezione e la forma del seriale! E poi una sera mi sono stampato il disassemblato della parte che mi interessava (tutta la call prima di quel salto) e mi sono messo a steppare piano piano cercando di capire cosa succedeva ...solo alla fine ecco il seriale esatto!

Tools usati

SoftIce

URL o FTP del programma

 
http://www.trellian.com/iwolf 

Notizie sul programma

 

Un utilissimo programma per la ricerca su internet e download di immagini e filmati. Veramente non so come funziona, non appena l'ho scaricato ho cominciato con il crack e non ancora l'ho provato ... credo proprio che adesso ci do uno sguardo! L'utilizzo della versione shareware, distribuita sulla rete, presenta un limite di tempo, superato il quale il programma è inutilizzabile, infatti ogni qualvolta viene avviata una ricerca appare una message box che ci avverte che il periodo di valutazione è terminato...bella fregatura! 

Essay

 

Avviato il programma vediamo un bel pulsantone *Register* che ci permette di entrare nel box x la registrazione. Ci vengono chiesti nome e seriale (il # verrà generato in base al nome inserito) e premendo il bel pulsante OK  avremo il chek del nostro #. Apriamo il Sice, bpx getdlgitemtexta, F5, OK nel box e il debugger poppa...bene bene...cosa c'è...no una sfilza di salti e call, mi sa tanto che ora dobbiamo cominciare a steppare e prima di tre ore non finiremo di certo...scherzo :)Nome e seriale vengono caricati in memoria uno dopo l'altro, infatti abbiamo 2 chiamate all'User32 per la funzione getdlgitemtexta. Nella prima parte del listato non abbiamo niente di significativo (lo capiamo perché non viene fatto niente ne con il nome ne con il seriale) fino a quando non arriviamo all'indirizzo 0040C5E:

 

 

:0040C05E        lea ecx, dword ptr [ebp+FFFFFF60]

:0040C064        push ecx <- ecx punta il nostro seriale

:0040C065        lea edx, dword ptr [ebp-50]

:0040C068        push edx <- edx invece il nostro nome

:0040C069        call 0040CAB0 <- generazione e confronto seriali

:0040C06E        add esp, 00000008

:0040C071        test eax, eax <- controllo...

:0040C073        jne 0040C0C7  <- ...e salto se uguali (salta se eax = 1)

 

 

C'è bisogno di spiegare quello che vedete qua sopra? Credo proprio di no! Allora l'unica cosa da fare è entrare nella call dato che vogliamo trovare il seriale. Nella chiamata abbiamo davanti una sfilza di salti, di chiamate e chi più ne ha più ne metta! L'unica cosa che possiamo fare è passarle tutte e cercare di capire cosa succede ai vari registri passo dopo passo. All'inizio abbiamo delle righe piuttosto interessanti:

 

 

:0040CAE1        mov edx, dword ptr [ebp+0C]

:0040CAE4        movsx eax, byte ptr [edx] <- primo char in eax

:0040CAE7        cmp eax, 00000049 <- char confrontato con "I"

:0040CAEA        jne 0040CB0F

:0040CAEC        mov ecx, dword ptr [ebp+0C]

:0040CAEF        movsx edx, byte ptr [ecx+01] <- secondo char in edx

:0040CAF3        cmp edx, 00000057 <- char confrontato con "W"

:0040CAF6        jne 0040CB0F

:0040CAF8        push 0000002D <- 2D = "-"

:0040CAFA        mov eax, dword ptr [ebp+0C]

:0040CAFD        push eax

:0040CAFE        call 0041EE60 <- in questa call ricorre ancora il char "-"

 

 

Da queste righe capiamo quale deve essere la forma del seriale cioè IW-xxxxxxx dove x sono delle cifre, che strana coincidenza, IW sono proprio le iniziali del programma (Image Wolf). Quindi ricordatevi di questi tre char perché il seriale lo troveremo in forma non completa ovvero solo i numeri che seguono "IW-".

Nelle righe successive vengono fatti vari calcoli sul seriale inserito e sul nome ma non troviamo ancora la generazione del seriale esatto quindi continuiamo fino ad arrivare all'indirizzo 40CCBE:

 

 

:0040CCBE        mov edx, dword ptr [ebp-04]

:0040CCC1        push edx <- con ? edx abbiamo il seriale esatto

:0040CCC2        push 0043022C

:0040CCC7        push 00000014

:0040CCC9        lea eax, dword ptr [ebp-40]

:0040CCCC        push eax

:0040CCCD        call 0041EAF0 <- confronto tra i due seriali ( se sono uguali alla fine della call in eax avremo 1, nel caso contrario 0 )

:0040CCD2        add esp, 00000010

:0040CCD5        mov ecx, dword ptr [ebp-08]

:0040CCD8        add ecx, 00000001

:0040CCDB        push ecx <- puntato da eax abbiamo il seriale inserito

:0040CCDC        lea edx, dword ptr [ebp-40]

:0040CCDF        push edx <- puntato da edx abbiamo il seriale giusto

 

 

Ecco abbiamo trovato il seriale esatto, ora non ci rimane che disabilitare i bp, uscire da Sice ed inserire il seriale corretto al posto di quello fasullo ed il gioco è fatto! Alla chiusura del programma lo stesso crea un file iwolf.ini che contiene i dati relativi alla registrazione oltre ad ulteriori informazioni, ad ogni suo riavvio imagewolf controlla il nome ed il seriale e se quest'ultimo non coincide o non è presente si setta automaticamente in modalità non registrata. Buon lavoro! 

Kurdt Kobain

 

 

Note finali

 

Davvero una bella soddisfazione! voglio dirvi una cosa, una volta inserito il seriale vi comparirà una finestra con i termini della licenza e tra questi abbiamo:

You may not:

- modify, reverse engineer, disassemble or create derivative works based on the Software.

Troppo tardi ormai l'abbiamo già disassemblato, reversato, crackato, ecc...

Un saluto a tutti quelli della UIC, a Joey Ramone che, x chi non lo sapesse, è scomparso qualche mese fa e a Kurt Cobain che, invece, non si vede più in giro già da sette anni ... non dimenticherò mai il 94! Ciao Kurt, ci manchi tanto!

 

:(   : (

 

Ah è vero! Un saluto anche a tutti i marziani e alieni vari che si dedicano al reversing:" Å¢¥í ý¾§·°¨ "

 

Disclaimer

Vorrei ricordare che il software va comprato e  non fregato, 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 non registrare illegalmente 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.