Xhack
Vuoi reagire a questo messaggio? Crea un account in pochi click o accedi per continuare.
Xhack

Un forum dedicato all'hacking
 
IndiceIndice  PortalePortale  CercaCerca  Ultime immaginiUltime immagini  RegistratiRegistrati  Accedi  

 

 un po'di reverse su windows

Andare in basso 
3 partecipanti
AutoreMessaggio
darkjoker
Admin
Admin
darkjoker


Numero di messaggi : 813
Data d'iscrizione : 30.07.07

un po'di reverse su windows Empty
MessaggioTitolo: un po'di reverse su windows   un po'di reverse su windows EmptyLun Ago 27, 2007 4:14 pm

premetto dicendo che potreste non vedere le immagini che ho inserito, in questo caso ho inserito sotto il link in modo da poterle vedere ugualmente

Prima di cominciare con il reverse vero e proprio volevo solo fare una piccola introduzione per i salti:
i salti, in assembly possono essere di due tipi:
-incondizionato (jmp) ovvero jump = salto in inglese
-condizionato (je, jne, jz, jnz, ecc.) questo tipo di salti agiscono a seconda che una condizione avviene o non avviene.
Per uqesto reverse ci interesseremo ai salti condizionati je e jne:
-je (jump if equal = salta se è uguale) salta se si è verificata una condizione di eguaglianza in un confronto.
-jne (jump if not equal = salta se non è uguale) salta se non si è verificata una condizione di ugualglianza in un confronto.

Bene, dopo questa piccola introduzione ai salti direi che possiamo cominciare con il reversing vero e proprio:
cominciamo ad aprire il crackme: vedremo una finestra che chiede di inserire un codice, se ne inseriamo uno a caso, per esempio 1234 una messagebox ci dirà che il codice inserito è errato.
Ora apriamo il crackme con W32Dasm e clicchiamo sul tasto 2 (in questa immagine ho solo elencato due tasti visto che sono gli unici due che useremo in questo reverse)

un po'di reverse su windows Tasti
http://www.rk0x14578.altervista.org/tasti.GIF

e poi selezioniamo dalla finestra che ci appare la scritta "Wrong Serial" (che è il testo della messagebox di quando sbagliamo codice).
Arriveremo ora a una schermata simile a questa:


un po'di reverse su windows Immagine01
http://www.rk0x14578.altervista.org/Immagine01.GIF

il cerchio blu indica le informazioni (titolo e testo) della messagebox che dobbiamo ottenere.
vedete circondato in rosso il testo wrong serial e una frecia lo collega a questa scritta:

* Referenced by a (U)nconditional or (C)onditional jump at Address:
|:004011B6(C)

Cosa sarà mai?
Semplicemente spiega che quella sarà la destinazione di un salto condizionato (si capicsce dalla (C) affianco al numero (una specie di indirizzo)), ma da dove proviene il salto?
E'presto detto: clicchiamo sul tasto 1 e inseriamo nella finestra che compare il codice che troviamo (004011B6)
Il programma cercherà la provenienza di questo indirizzo, e ci porterà molto lontano...

un po'di reverse su windows Immage02
http://www.rk0x14578.altervista.org/Immage02.GIF

La freccia rossa indica la provenienza dell'indirizzo, e vediamo un jne (jump if not equal, ricordate?).
Possiamo vedere che salta se non è uguale e quindi se non è uguale si effettuerà il percorso indicato dalla linea blu altrimenti (se è uguale) seguirà la linea viola.
Una domanda vi sarà sorta, ma uguale a cosa?

beh, allora, analizziamo il punto 1:

viene richiamata una funzione API di windows, ovvero GetWindowTwxtLengthA. ovvero una routine che restituisce la lunghezza della stringa di una casella di testo.

il template della funzione è il seguente:

int GetWindowsTextLength(

HWND hWnd //handle of the window or control with text
);
la funzione chiede coma parametro un handle (numero univoco che referenzia ogni processo, finestra, pulsante, ecc di windows) E restituisce un numero di tipo intero, che in poche parole ci dice quanto è lunga la stringa.
questo valore viene messo nel registro eax, e poi viene spostato nel registro esi con l'istruzione mov (figura 2).
il testo inserito viene poi confrontato con l'handle, ovvero 0000000C (sempre figura 2), naturalmente 0C è un numero esadecimale, che trasformato in decimale con la calcolatrice di windows diventa 12.
quindi il flusso del programma è questo:

si prende la lunghezza del testo inserito,
confronto con 12
è uguale?
si
finestra congratulazioni
no
finestra di errore

il nostro scopo è quello di fare in modo che ogni valore inserito sia quello giusto per la finestra di congratulazioni quindi dovremo modificare quel jne, che regola tutto.
chiudiamo W32Dasm e apriamo il crackme con HIEW. Prima però prendiamo nota i quel 751E che troviamo affianco al jne.
ora, con HIEW, premiamo due volte invio da quando abbiamo aperto il crackme, e comparirà qualcosa tipo:

un po'di reverse su windows Immagine03
http://www.rk0x14578.altervista.org/Immagine03.GIF

ora premiamo F7 e inseriamo il codice 751E senza spazi e premiamo invio
arriveremo a un punto cosi

.oo4o11B6: 751E jne .004011D6 -------- (3)

ora premiamo F3 e potrmo modificare quel 751E, inseriamo al suo posto 9090 (ovvero nop nop, con il codice 90 non verrà eseguita nessuna operazione)(ah, il 'codice', come l'ho definito io si chiama opcode, l'opcode di je è 74, quello di jne è 75, infatti basta guardare la prima parte del codice 751E per vedere l'opcode di jne
anche se i due 90 saranno su due linee differenti non importa, premiamo F9 per salvare e poi ESC per uscire.
In questo modo, mettendo 9090 non ci sarà più nessun salto, quindi troveremo in ogni caso la routine di congratulazioni.
semplice, vero?

ciao ciao
Torna in alto Andare in basso
darkjoker
Admin
Admin
darkjoker


Numero di messaggi : 813
Data d'iscrizione : 30.07.07

un po'di reverse su windows Empty
MessaggioTitolo: Re: un po'di reverse su windows   un po'di reverse su windows EmptyVen Ago 31, 2007 11:17 am

azz... mi sono dimenticato il link per gli strumenti... rimedio subito...

http://www.rk0x14578.altervista.org/reverse_windows.zip

come sempre se non funziona copiate il link nella barra URL...

ciao!
Torna in alto Andare in basso
black hole
membro
membro
black hole


Numero di messaggi : 90
Data d'iscrizione : 03.10.07

un po'di reverse su windows Empty
MessaggioTitolo: Re: un po'di reverse su windows   un po'di reverse su windows EmptyGio Nov 22, 2007 7:18 pm

il link di immagine03 non mi funge e invece quello di immage02 in realtà è immagine02 giusto?
Torna in alto Andare in basso
darkjoker
Admin
Admin
darkjoker


Numero di messaggi : 813
Data d'iscrizione : 30.07.07

un po'di reverse su windows Empty
MessaggioTitolo: Re: un po'di reverse su windows   un po'di reverse su windows EmptyVen Nov 23, 2007 8:25 pm

.. ehm, c'è stato un'po di casino con le immagini... please wait...
Torna in alto Andare in basso
black hole
membro
membro
black hole


Numero di messaggi : 90
Data d'iscrizione : 03.10.07

un po'di reverse su windows Empty
MessaggioTitolo: Re: un po'di reverse su windows   un po'di reverse su windows EmptySab Nov 24, 2007 3:50 pm

ok...
Torna in alto Andare in basso
darkjoker
Admin
Admin
darkjoker


Numero di messaggi : 813
Data d'iscrizione : 30.07.07

un po'di reverse su windows Empty
MessaggioTitolo: Re: un po'di reverse su windows   un po'di reverse su windows EmptyLun Nov 26, 2007 6:10 pm

ehm... mo non c'ho piu quei programmi che girano su winzozz... mi devo mettere su qualche pc con winzozz e da li scaricare i prog per salvare le schermate...
Torna in alto Andare in basso
BlackLight
Moderatore
Moderatore
BlackLight


Numero di messaggi : 277
Età : 37
Data d'iscrizione : 22.08.07

un po'di reverse su windows Empty
MessaggioTitolo: Re: un po'di reverse su windows   un po'di reverse su windows EmptyMar Nov 27, 2007 12:32 am

Eh eh per un esercizio molto simile in ambiente Unix vi rimando al mio tutorial sul reversing e al mio piccolo esercizio proposto Wink
Torna in alto Andare in basso
http://blacklight.gotdns.org
Contenuto sponsorizzato





un po'di reverse su windows Empty
MessaggioTitolo: Re: un po'di reverse su windows   un po'di reverse su windows Empty

Torna in alto Andare in basso
 
un po'di reverse su windows
Torna in alto 
Pagina 1 di 1
 Argomenti simili
-
» Bug di Windows
» Perche non usi windows?
» Nome e Seriale??? Windows
» Problema aggiornamento di windows vista

Permessi in questa sezione del forum:Non puoi rispondere agli argomenti in questo forum.
Xhack :: Other :: Reverse Engineering-
Vai verso: