Zoom Icon

Corso UIC Newbies 04 Guancy

From UIC

Totally Newbies 4°

Contents


Infos
Author: Guancy
Email: ilm_sat@yahoo.it
Website: ***
Date: 05/01/2007 (dd/mm/yyyy)
Level: Working brain required
Language: Italian Image:Flag_Italian.gif
Comments: Corso n° 4 per NewBies totali



Introduction

This is lesson n° 4 of NewBies course.
We will find serial number directly in the stack.


Tools


Link e Riferimenti

Questo è la soluzione del Corso UIC Newbies n°04 disponibile alla pagina Corso UIC Newbies 04


Essay

Risolvere questa lezione è veramente facile: è necessario 1 solo minuto! Non mi credete? Allora provate a cronometrare.

Una volta installato il programma è necessario caricarlo in OllyDbg (d'ora in poi Olly) e avviarlo. Comparirà una finestra di presentazione e noi cliccheremo su Register Now.
Inseriamo nome utente è password che per me sono i soliti:

Nome: Guancy
Password: 666111666

Prima di cliccare su Register settiamo in Olly un breakpoint sull'API GetWindowTextA mediante il comando bpx GetWindowTextA e poi clicchiamo sul pulsante per registrarci. A questo punto ci ritroveremo sul debugger in questo punto:

[...]

453A9F CALL <nowiki><</nowiki>JMP.&user32.GetWindowTextA<nowiki>></nowiki> //chiamta all'API
453AA4 MOV ECX,EAX
453AA6 MOV EDX,ESP
453AA8 MOV EAX,ESI
453AAA CALL 00404C6C //routine di generazione del seriale
453AAF JMP SHORT 00453ABE
453AB1 MOV EAX,ESI
453AB3 MOV EDX,DS:[EBX+8C]
453AB9 CALL 00404BD0
453ABE ADD ESP,100
453AC4 POP ESI //a questo punto date un occhiata allo stack :-)
453AC5 POP EBX

[...]

Una volta giunti all'indirizzo 453A9F steppiamo tramite F8 sino all'indirizzo 453AC4 e dando un'occhiata allo stack (in basso a destra del debugger) vedremo questo codice:

0012F248 00B4EE2C ASCII "666111666" //seriale che ho inserito
0012F24C 00B075B0 ASCII "Guancy" //nome utente inserito
0012F250 00B4EE10 ASCII "861267861267" //seriale CORRETTO!!!

Ecco ottenuto il seriale. Tempo di lavoro: 1 minuto!

Ora inserendo i dati ottenuti potremo registrare il programma:

Nome: Guancy
Password: 861267861267

--- GUANCY ---


Note Finali

Grazie alla U.I.C. di esistere.


Disclaimer

I documenti qui pubblicati sono da considerarsi pubblici e liberamente distribuibili, a patto che se ne citi la fonte di provenienza. Tutti i documenti presenti su queste pagine sono stati scritti esclusivamente a scopo di ricerca, nessuna di queste analisi è stata fatta per fini commerciali, o dietro alcun tipo di compenso. I documenti pubblicati presentano delle analisi puramente teoriche della struttura di un programma, in nessun caso il software è stato realmente disassemblato o modificato; ogni corrispondenza presente tra i documenti pubblicati e le istruzioni del software oggetto dell'analisi, è da ritenersi puramente casuale. Tutti i documenti vengono inviati in forma anonima ed automaticamente pubblicati, i diritti di tali opere appartengono esclusivamente al firmatario del documento (se presente), in nessun caso il gestore di questo sito, o del server su cui risiede, può essere ritenuto responsabile dei contenuti qui presenti, oltretutto il gestore del sito non è in grado di risalire all'identità del mittente dei documenti. Tutti i documenti ed i file di questo sito non presentano alcun tipo di garanzia, pertanto ne è sconsigliata a tutti la lettura o l'esecuzione, lo staff non si assume alcuna responsabilità per quanto riguarda l'uso improprio di tali documenti e/o file, è doveroso aggiungere che ogni riferimento a fatti cose o persone è da considerarsi PURAMENTE casuale. Tutti coloro che potrebbero ritenersi moralmente offesi dai contenuti di queste pagine, sono tenuti ad uscire immediatamente da questo sito.

Vogliamo inoltre ricordare che il Reverse Engineering è uno strumento tecnologico di grande potenza ed importanza, senza di esso non sarebbe possibile creare antivirus, scoprire funzioni malevoli e non dichiarate all'interno di un programma di pubblico utilizzo. Non sarebbe possibile scoprire, in assenza di un sistema sicuro per il controllo dell'integrità, se il "tal" programma è realmente quello che l'utente ha scelto di installare ed eseguire, né sarebbe possibile continuare lo sviluppo di quei programmi (o l'utilizzo di quelle periferiche) ritenuti obsoleti e non più supportati dalle fonti ufficiali.