Corso UIC Newbies 04
From UIC
Totally NewBies 4° - CDEdit v1.12
Contents |
| Infos | |
|---|---|
| Author: | Quequero |
| Email: | |
| Website: | http://quequero.org |
| Date: | 12/02/2000 (dd/mm/yyyy) |
| Level: |
|
| Language: | Italian |
| Comments: | Stavolta non crackeremo il programma ma faremo in modo di poterne pescare il seriale e quindi registrarlo |
Introduction
Bene proviamo a pescare il seriale di questo semplicissimo programma
Tools
Link e Riferimenti
- Questo è il Corso UIC Newbies n°04 disponibile alla pagina Corsi UIC Newbies
- Sito ufficiale: Link
Essay
Allora scaricate il programma e quindi installatelo, all'inizio apparirà un NAG Screen come questo:
non clickate su "Register now" perchè c'è un piccolo bug, ma entrate nel programma clickando sul logo in alto, poi andate al menù di registrazione:
e vi apparirà il solito box di registrazione nel quale dovrete inserire un nome ed un numero a cavolo:
tanto per curiosià proviamo a vedere che succede se premiamo "Register":
bene, proviamo allora ad entrare nel codice del programma, suggerisco di aprire softice (ctrl+d) e quindi mettere due breakpoint su GetWindowTextA e GetDlgItemTextA: bpx getwindowtexta bpx getdlgitemtexta quindi premiamo invio ed usciamo da softice..........Riclickiamo su register......E.....Niente, non va, oki allora rientriamo in softice e con "bc*" cancelliamo tutti i bp e ne settiamo uno nuovo su hmemcpy con: bpx hememcpy okkei, usciamo con F5 e riclickiamo su "Register", stavolta softice ci poppa dritti in faccia, bene, premiamo F11 per uscire dal codice della chiamata....Un paio di volte F12 (in pratica finchè nella riga verde in basso di softice non troviamo scritto CDEdit+text ecc....) a questo disabilitiamo tutti i breakpoint con "bd*" e premiamo F12 fino a raggiungere l'indirizzo 004757FC, cancelliamo tutti i break e settiamone uno qui, adesso vi dovreste chiedere: "Come l'hai deciso di fermarti qui?", il motivo è che con hmemcpy ci ritrovavamo dentro una marea di chiamate e ad ogni pressione di F12 trovavamo subito dei ret....Abbiamo quindi continuato a steppare finchè non siamo arrivata alla chiamata principale che è quella all'indirizzo 004757F1. La parte di codice che ci interessa ancora non è questa, ma premiamo qualche volta F10 e diamogli uno sguardo:
00475810 cmp dword ptr [ebp-08], 00000000
00475814 jne 0047584E
Questa call non fa altro che verificare la lunghezza del serial inserito che se è diverso da zero allora salta all'indirizzo 0047584E....Visto che il serial l'abbiamo inserito allora il salto sarà eseguito...
00475851 mov eax, dword ptr [ebx+000001E4]
00475857 call 0041EA00
0047585C mov eax, dword ptr [ebp-04]
la chiamata all'indirizzo 475857 prende il nome dalla casella di testo e ne riporta in eax la lunghezza, poi
0047585F mov edx, 004759B0
00475864 call 00403C38
00475869 jne 004758A5
viene caricato in eax il nostro nome e in edx questa stringa: "Temporary CDEdit Code" (per vederlo scrivere in softice "d 4759B0) e poi vengono confrontati per vedere se sono uguali (probabilmente servirà per avere qualche giorno di bonus), saltiamo quindi a 004758A5 ed andando un po' avanti giungeremo alla routine di creazione del seriale:
004758B6 lea edx, dword ptr [ebp-0C]
004758B9 call 00473B40
004758BE mov eax, dword ptr [ebp-0C]
004758C1 push eax
bene bene, eccoci alla fatidica routine di generazione, per prima cosa, viene caricato in eax il nostro nome (steppate oltre la funzione all'indirizzo 4758B3 e scrivete "d eax") e la chiamata a 004758B9 genererà il nostor bel serial che poi caricherà in eax con l'istruzione "mov eax, dword ptr [ebp-0C]", a questo punto possiamo scrivere "d eax" e prendere il nostro seriale che per il nick Quequero corrisponde a: 3988989363223236. Bene, se poi volete cercare di capire la routine di generazione potete entrare nella chiamata con F8 e vedere che succede, vi garantisco che è estremamente semplice, in linea di massima se il nome è lungo meno di 9 caratteri viene duplicato così Quequero diventa "QuequeroQuequero" ogni carattere viene poi moltiplicato per 8 e poi gli viene sommato il suo valore esadecimale, successivamente viene diviso per tre ecc.....Niente di difficile, anzi potreste anche divertirvi a capire cosa succede.
Note Finali
Vorrei ringraziare Johnny che mi ha segnalato questo programma, mando anche un bacione a Marta e saluto tutti quanti i membri della UIC.....Ciauz gente, continuate così ciauzzzzzzzzzzzzz
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.



