HighGrow
(Wdasm32 strings search)


Data

by "GuZuRa"

UIC's Home Page

Published by Quequero

Chi sa soffre...

Altra buona soluzione sull'HighGrow con spiegazione per raggiungere il GOD MODE :)

Chi non sa soffre di più
UIC's form
E-mail: guz_ura@yahoo.com
#crack-it (da poco)
UIC's form

Difficoltà

(X)NewBies ( )Intermedio ( )Avanzato ( )Master

 


HighGrow
(Wdasm32 strings search)
Written by GuZuRa

Introduzione

Immesso il seriale siete dentro, poi c'e la password e il GOD MODE (lo si attiva ma non ne ho capito l'utilità ;)

Tools usati

WDasm32 e un qualsiasi EDITOR dei Registri di Windows

URL o FTP del programma

Se siete qui sapete dov'è ;)

Notizie sul programma 

Erba? Chi può scrivere un programma sull'erba? Una Mucca? Lo ho dato a mio zio che con le tecniche descritte ha tirato su dell'erba medica eccezionale

Essay

Inserito il seriale giusto (questo non sto a spiegarlo perchè ho usato lo stesso metodo del tutorial originale di Que e sarebbe plagio) ho deciso di attivare il GOD MODE a cui era stato accennato nel tutorial di cui sopra (io ci sono riuscito e sono newbie quindi provate anche voi prima di proseguire).
Ora va fatta una premessina, dato che sono un pigro cronico dopo aver registrato il programma con il serial opportuno non mi sono preoccupato di andare a vedere tutte le opzioni che il programma offriva e quindi non ho visto che si poteva abilitare una password per impedire agli altri di giocare con le nostre piantine e di conseguenza ho pensato che per abilitare il GOD MODE bisognasse attivare una finestra nascosta e dare una password.
Aprite lo string data reference (do per scontato che abbiate letto il tut su questo programma di QUE) scorrendo scorrendo trovate la seguente stringa: "Invalid password entered !!"cliccate due volte e vi ritrovate all'offset :4073f8 guardate due righe giù. Una MessageboxA vi attende! Incominciamo a risalire il codice per vedere chi chiama chi; troviamo che il seguente codice che riguarda la messageboxa è; referenziato dal seguente salto non condizionato:
* Jump Unconditional :4073E6(U)
subito a vedere questo salto dove sta e magia delle magie si trova ( che CULO trovo la routine che controlla se la password che ho immesso sia corretta (ed è una routine del tutto identica a quella che controlla che il seriale per la registrazione sia giusto) ma ora mi viene un dubbio; dove cazzo va a pescare una password se non ho il modo di immetterla (ricordate che non ho guardato le opzioni del programma e quindi non avevo idea di questa possibilità…sono pigro) continuo a risalire per vedere dove piglia sta password risalgo fino a :004073A4 che è referenziato da un salto condizionato che arriva da :40738F e su ancora fino a :0047380 che arriva da una CALL a 40075B3 salgo fino alla CALL e trovo che devo andare a 4075A4 che mi manda a :407536 poi a :407521 per arrivare a finire a :407500 dove non trovo più niente perchè WDasm32 non riesce a referenziare una chiamata del tipo "CALL esi " infatti dopo la sfilza di int3 trovo una ret (non mi sono preoccupato dei salti intermedi perchè; non mi inspiravano INTUIZIONE E UN PO' DI CULO) ma sono arrivato a un punto morto.
Non proprio avete fatto caso alla routine che fa il check sulla password; ci dice esattamente in quale locazione sta la password; andiamo a vedere (a :004073C3 se non ricordate) e vediamo che c'è un bel mov edx,00426590 dove edx è confrontato con eax nella routine che verifica la password ma questo dovreste già saperlo ;))) Ora si fa un bel Find text con la stringa 00426590 per vedere cosa salta fuori (la curiosita talvolta aiuta); infatti ogni volta che WDasm32 trova la stringa lì  vicino ci stanno anche le seguenti "Possible string data ref" :1 volta c'è Password, 2 volte c'è IAMGOD (molto interessante, scorgete il codice sotto e trovate sotto ognuna delle stringhe IAMGOD un check che confronta la stringa  stessa con quella che inserite: quindi DUE check) e 1 volta il seriale poi altre cose.
Anche il seriale mmmmmhhhhhh
Colpo di CULO e un pizzico di INTUIZIONE, e sono a guardare i registri di windows dove credo ci sia il seriale.
Piglio il mio register editor (uso quello della Norton) e scopro che c'è nè uno per il seriale e uno per il Nick che ho usato per registrare il programma.
Ideona e colpo di culo, inserisco io un nuovo registro chiamato Password (come era apparso dalla ricerca della stringa 00426590) con un valore a caso e vado a vedere Amelia e Cordelia (le mie piantine).
Riavvio il programma e BAM schermata che mi chiede la password (che coglione mi sono escluso da solo MA ORA TUTTO E CHIARO) chiudo tutto vado alla routine che verifica la password (quella di prima) trovo l'offset esadecimale dell'istruzione (se non sapete come fare leggete il tutorial n° 2 per newbies di Tin_Man: eccezionale e chiaro) apro Hiew e vado a noppare i JNE ( che stanno dopo i confronti tra cl e byte ptr…) così la password non è comunque più un problema
Il codice modificato è questo:
:004073C8 mov cl, byte ptr [eax]
:004073CA cmp cl, byte ptr [edx]
:004073CC nop (opcode 90h lo so lo sapete già; ma quando io non lo sapevo nessuno me lo diceva)
:004073CD nop
:004073CE or cl,cl
:004073D0 nop
:004073D1 nop
:004073D2 mov cl, byte ptr [eax+01]
:004073D5 cmp cl, byte ptr [edx+01]
:004073D8 nop
:004073D9 nop
:004073DA add eax,00000002
... Tanto e sempre la stessa quindi non la spiego lo ha fatto meglio [Paradox Evil]
Apro il programma ed entro
AH IL GOD MODE beh dovreste averlo capito da soli dato che la stringa IAMGOD si trovava vicino ai check per la password cosa dovrete inserire secondo voi come Password? Chiudete, riaprite et voilà.
Ultima Nota vi ricordate i DUE CHEK per controllare se la stringa IAMGOD era uguale all password? Dato che la routine che fa il controllo è uguale a quella del seriale e della password potreste pensare di far saltare anche quelle e attivare il god mode con qualsiasi password
Con questo ho finito ciao a tutti da GuZura

Note finali

Conclusioni se avessi guardato meglio il programma e mi fossi accorto della possibilità di settare la password mi sarei risparmiato la meta del lavoroma l'esperienza insegna

Una riga per salutare tutti coloro che rispondono alle mie richieste di aiuto sulla ML

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.
Capitoooooooo????? Bhè credo di si ;)))) 

UIC's page of reverse engineering, scegli dove andare:
Home   Anonimato   Assembly    CrackMe   ContactMe   Forum   Iscrizione
Lezioni    Links   Linux   NewBies   News   Playstation
Tools   Tutorial   Search   UIC Faq
UIC