Zoom Icon

PGP555

From UIC

Pretty Good Privacy 5.5.5

Contents


Infos
Author: Ritz
Email: Eclyps3@excite.com
Website: Home page
Date: 23/08/1999 (dd/mm/yyyy)
Level: Working brain required
Language: Italian Image:Flag_Italian.gif
Comments: Altro tutorial by Ritz, decisamente indicato per i NewBies e come al solito molto ben scritto...bravo Ritz :)))



Introduzione

Ciao a tutti! Ci si rivede eh? No, non vi preoccupate, non pensate "Ao ma questo nun l'aveo mai sentito prima... si è messo a fare tutorial a nastro?" Don't worry, questo tute è una vera e propria schifezza. Anzi no, il tute è bello :)), è la protezione che è una schifezza.

Allora, in questo tute cercherò di spiegarvi come a volte le protezioni di un programma possano rivelarsi più semplici del previsto... l'unico problema è TROVARLE!!


Tools


Link e Riferimenti

Azz il PGP lo trovate dappertutto... cmq dovrebbe essere www.pgp.com. Provate anche www.pgpi.com NdQue


Notizie sul Programma

Il programma penso sappiate tutti a che serve: è un proggy di crittazione a chiave asimmetrica, cioè per crittare e decrittare non si usa la stessa chiave... molto sicuro quindi per scambiarsi ad esempio e-mail senza essere sgamati... per un tute sul funzionamento della crittazione a chiave pubblica vi rimando a "Newbies 2" o BFI per i più esigenti :)). Consiglio di acquistarlo perchè dopotutto bisogna ricompensare i programmatori della Network Associates che hanno fatto un così buon lavoro (a parte la protezione facilmente scazzabile :)))).


Essay

OK se parte...

Installato il PGP? Sì? Bene, avviatelo... anzi no... prima cavate l'icona dal Tray, quindi portate la data del Windouz avanti di 46 anni. Riavviate il PGP. Vi appare un nag screen del cazzo che vi dice che i prog è scaduto? Bene, siete a cavallo! Entrate in Sice con CTRL+D e mettete un bpx messageboxa per intercettare l'API che fa apparire il messaggio. Uscite dal Sice e caricate il Pretty Bad Protection (scherzo eh?) da Start/Programmi/Pretty Good Privacy/PGPtools.

Ora ci dovremmo aspettare che il debugger poppi prima della schermata: INFATTI! BINGO! Premete F11 per entrare nella DLL (o l'EXE) che genera la chiamata, e, azz, appare la schermata del proggy... pork putt, come mai non siamo entrati nel codice? Boh, cliccate su OK e.... il SoftIce ripoppa! Questa volta diretamente su una DLL del PGP: PGP55cd.dll, localizzata in C:\WINKAZ\SYSTEM, e precisamente in questo punto:

:0048A202 POP EDI

Bene, ora non vi resta che fare una cosa: disassemblate la cara PGP55cd.dll col Dasm. Fatto? Vabbè... tanto per sicurezza andiamo a guardare le String Data References, sarà impossibile trovare qualcosa, cmq tentiamo: clicchiamo sul secondo pulsante della barra partendi da destra, osserviamo un po' le stringhe... hum hum... mumble mumble... osservate un po' la nona partendo dal basso: "Thank you for evaluating Pretty", cazzo ma non è la parte iniziale del testo della messagebox da fottere? fateci doppio clic sopra; vi troverete qui:

* Jump at Address:
|:10002814(C)
|

:10002867 cmp dword ptr [esp+24], 00000002
:1000286C jne 10002876
:1000286E add dword ptr [esp+08], 00278D00

* Jump at Address:
|:1000286C(C)
|

:10002876 cmp esi, dword ptr [esp+08]
:1000287A jbe 10002881 <--- Mi suona sinistro jump if below or equal...

* Possible Reference to String Resource ID=00001: "General strings"
|

:1000287C mov edi, 00000001

* Jump at Address:
|:1000287A(U)
|

:10002881 mov eax, edi
:10002883 pop edi
:10002884 pop esi
:10002885 add esp, 00000014
:10002888 ret


:10002889 nop
:1000288A nop
:1000288B nop
:1000288C nop
:1000288D nop
:1000288E nop
:1000288F nop

* Referenced by a CALL at Address:
|:100027A2
|

:10002890 sub esp, 00000400
:10002896 mov ecx, 00000040
:1000289B lea eax, dword ptr [esp]
:1000289F push esi
:100028A0 push edi

* Possible StringData Ref from Data Obj ->"Thank you for evaluating Pretty "
->"Good Privacy. The 60"
|

:100028A1 mov esi, 100280F8
:100028A6 lea edi, dword ptr [esp+08]
:100028AA repz
:100028AB movsd
:100028AC mov ecx, dword ptr [esp+0000040C]
:100028B3 push 00000000
:100028B5 movsw

Visto bene il codice...? Dunque a :100028A1 viene generata il nag-screen, quindi nei dintorni ci dovrebbe essere qualcosa di utile... vediamo un po'... osservate :1000287A, un jbe.. cambiandolo in je o JMP forse... naaaa troppo facile... cmq vale la pena tentare, vero? Segnatevi l'OFFSET (1C7A) e cambiatelo con HIEW (non vi spiego come si fa, se non lo sapete leggete l'altro mio tutorial :))): provate a mettere, che so, jump incondizionato, tanto 99% non funzionerà... fatto? Bene, avviate il PGP, e pork putt azz tr!! Programmillo crackato!! Facile no? Beh, che dire, tute finito.

Non ho altro da aggiungere. Vabbè, non mi resta che augurarvi H A P P Y C R A C K I N G!!!

SeE yOu SoOn, ciauzzzz

Ritz

N.B.: ricordatevi di riportare indietro la data di WINCESS dopo avre finito tutto eh? P.S.: mi è venuta in mente appena ora una cosa interessante che non centra nulla col cracking: il calendario di Windozz dovrebbe fermarsi al 2099: se io imposto la data al 31 dicembre 2099 e poi il giorno dopo riavvio che succede? Magari vengo trasportato in un'altra dimensione dove tutto è posseduto da Microsoft e il dittatore assoluto è Bill Gates... meglio lasciar perdere... se qualcuno ha il coraggio di farlo... mi scriva per comunicarmi i risultati... :-))))


Note Finali

Vorrei ringraziare e salutare anche questa volta Quequero per aver pubblicato l'articolo (trooopppooo gentileee), i ring0, il chan crack-it.

Saluto anche DFX e il Mora, amici di scuola e IRC.

Grazie inoltre a chi è arrivato a leggere fino a qui e ne ha tratto profitto :)). Per qualsiasi cosa, scrivetemi [se usate il PGP (per il crack basta che cerchiate in rete... ihihihihih) mandatemi la vostra chaive].


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.