TelePC Teminal
From UIC
TelePc Terminal
Contents |
| Infos | |
|---|---|
| Author: | GeO |
| Email: | geuzzo[at]gmail[dot]com |
| Website: | None |
| Date: | 13/03/2004 (dd/mm/yyyy) |
| Level: |
|
| Language: | Italian |
| Comments: | Esistono dei decompilatori molto simpatici per il delphi che ti consentono di fare un sacco di cose, dagli uno sguardo se hai delle curiosità e grazie per il tute. |
Introduzione
Questo programma fatto in Delphi mi ha dato qualche grattacapo, infatti non sono ancora riuscito a capire con quale funzione prenda il testo nella schermata della registrazione... Beh, non riuscendo a forzare la registrazione né a trovare il seriale ho optato per un metodo leggermente più invasivo.
Tools
Link e Riferimenti
Notizie sul Programma
Questo programma permette il Remote desktop con diverse funzionalità interessanti.
Essay
1) Dato che il programma ha solo una limitazione di tempo (10 minuti) ho deciso di crackare la routine che calcola quanto tempo manca allo scadere dei 10 minuti previsti per la valutazione. Con il win32dsm ho guardato le Stringhe e ne ho trovata una molto interessante --> "Sono trascorsi i 10 minuti previsti..." Non vi fa venire in mente nulla? =) Leggermente sopra la stringa (all'indirizzo 0047BD2C) ho trovato che ebx+00000404 veniva incrementato e che sotto c'era un cmp (compare) con il valore 0000000A (vi ricordo che A = 10 in hex!). Dopo il confronto c'era un bel salto condizionato (un jle, jump if less or equal, che salta se il valore è minore o uguale a 0A). A Questo punto avrei potuto modificare il valore 0000000A con un FFFFFFFF per aumentare i minuti disponibili per la valutazione del programma, ma ho deciso di modificare il jump condizionato con un jmp per svincolare il tutto dai valori (i minuti passati e i minuti totali). Il codice è questo:
0047BD32 cmp dword ptr [ebx+00000404], 0000000A
0047BD39 7E37--> diventa EB37 jle 0047BD72 ---> diventa jmp 0047BD72
2) Poi rimaneva il problema della fastidiosissima scritta: Versione Demo rimangono tot minuti, che appare ogni tanto sullo schermo... Guardando il codice ho notato che potevo noppare i vari push che mettevano nello stack i due pezzi della scritta. Però osservando meglio il codice nella parte precedente ho notato un confronto (a 00479A0B) identico a quello che determinava la presenza della scritta "Versione Dimostrativa" invece di quella "Tele-PC Terminal - Licenza per "Nome inserito in registrazione" (che vedremo al punto 3). Infatti il codice si presentava così:
00479A04 cmp byte ptr [eax+00000400], 00
00479A0B 0F849C000000--> diventa E99D000000 je 00479AAD---> diventa jmp 00479AAD
Stranamente il salto (jump near if equal) punta all'indirizzo subito dopo il codice per la visualizzazione della schermata Versione Demo rimangono tot minuti =). La cosa più logica da fare è cambiare questo jump con uno incondizionato (jmp) per non fare comparire quella scritta in nessuna occasione. C'è da notare che in eax vengono messi i minuti trascorsi, i quali, se sono pari a zero fanno "capire" al programma che il programma è registrato in quanto non è partito il conto dei minuti trascorsi dall'apertura dell'inizio della connessione. (Quanto detto qui vale anche per le scritte in alto).
3) Anche la scritta in alto "Versione Demo" era fastidiosa... Sempre con il metodo delle stringhe ho trovato la parte di codice relativa alla visualizzazione di quella scritta. In realtà ce ne sono due, una quando sei connesso e l'altra quando non lo sei... La prima dipende dal je all'indirizzo 00478DF5 che va sostituito con un jmp. Eccone il codice:
00478DF5 7430--> diventa EB30 je 00478E27 ---> diventa jmp 00478E27
C'è da notare che così facendo il programma prende il nome inserito in "?" --> "Registrazione..." anche se non è accompagnato dal serial o corretto. Addirittura ho provato a inserire l'User Name senza il serial e lo prende lo stesso. Il nome e il serial sono "salvati" (anche se non corretti) in una chiave del registro di windows ( rispettivamente HKEY_CURRENT_USER\Software\Tele-PC\Authorization e HKEY_CURRENT_USER\Software\Tele-PC\Authorization), ma a noi questo non interessa...
La seconda dipende dal je all'indirizzo 0046A206 che una volta sostituito con un jmp (salto incondizionato) mostra sempre la scritta Tele-PC Terminal - Licenza per "Nome inserito in registrazione" invece di Tele-PC Terminal - Versione Dimostrativa. Ecco il codice:
0047A206 740E --> diventa EB0E je 0047A216 ---> diventa jmp 0047A216
|GeO|
Note Finali
Questo è il mio primo crack, riconosco che non è un crack ottimizzato né molto elegante, però quello che conta è il risultato, o no? =)
Ringrazio AndreaGeddon per la sua disponibilità, Eimiar per avermi dato qualche dritta e tutto il canale #crack- it su AzzurraNet.
Ps: Se qualcuno riesce a capire o ha qualche idea su quale funziona usi il programma per prendere il testo nella parte della registrazione può rendermi partecipe della sua scoperta su #crack-it o su #traduzioni (su AzzurraNet ). Ringrazio in anticipo.
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.