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: |
|
| Language: | Italian |
| 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:
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
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.